Ports Revision 382670 ## And the following internal features: pthread: no (can't link with -lpthread or -pthread) gtk-doc: no gcov support: no symbol-lookup: no (requires bfd) test surfaces: no (disabled, use --enable-test-surfaces to enable) ps testing: no (requires libspectre) pdf testing: no (requires poppler-glib >= 0.17.4) svg testing: no (requires librsvg-2.0 >= 2.35.0) ... ===> Building for cairo-1.12.18_1,2 ... --- cairo-arc.lo --- In file included from cairo-arc.c:37: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: In file included from ./cairo-mutex-type-private.h:45: ./cairo-mutex-impl-private.h:262:3: error: "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." --- cairo-array.lo --- In file included from cairo-array.c:39: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: In file included from ./cairo-mutex-type-private.h:45: ./cairo-mutex-impl-private.h:262:3: error: "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." --- cairo-atomic.lo --- In file included from cairo-atomic.c:34: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: In file included from ./cairo-mutex-type-private.h:45: ./cairo-mutex-impl-private.h:262:3: error: "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." --- cairo-analysis-surface.lo --- In file included from cairo-analysis-surface.c:37: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: In file included from ./cairo-mutex-type-private.h:45: ./cairo-mutex-impl-private.h:262:3: error: "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." ^ ./cairo-mutex-impl-private.h:271:11: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_recursive_mutex_impl_t; ^ In file included from cairo-analysis-surface.c:37: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: ./cairo-mutex-type-private.h:49:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." ^ --- cairo-arc.lo --- # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." ^ ./cairo-mutex-impl-private.h:271:11: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_recursive_mutex_impl_t; ^ In file included from cairo-arc.c:37: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: ./cairo-mutex-type-private.h:49:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." ^ ./cairo-mutex-type-private.h:52:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." ^ --- cairo-array.lo --- # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." ^ ./cairo-mutex-impl-private.h:271:11: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_recursive_mutex_impl_t; ^ In file included from cairo-array.c:39: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: ./cairo-mutex-type-private.h:49:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." ^ --- cairo-atomic.lo --- # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support." ^ ./cairo-mutex-impl-private.h:271:11: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_recursive_mutex_impl_t; ^ In file included from cairo-atomic.c:34: In file included from ./cairoint.h:396: In file included from ./cairo-scaled-font-private.h:45: ./cairo-mutex-type-private.h:49:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_LOCK not defined. Check cairo-mutex-impl-private.h." ^ ./cairo-mutex-type-private.h:52:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." --- cairo-analysis-surface.lo --- ./cairo-mutex-type-private.h:52:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." ^ ./cairo-mutex-type-private.h:55:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." ^ ./cairo-mutex-type-private.h:139:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined" # error "CAIRO_MUTEX_IMPL_LOCK not defined" ^ ./cairo-mutex-type-private.h:142:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined" # error "CAIRO_MUTEX_IMPL_UNLOCK not defined" ^ ./cairo-mutex-type-private.h:151:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" ^ --- cairo-arc.lo --- ./cairo-mutex-type-private.h:55:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." ^ ./cairo-mutex-type-private.h:139:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined" # error "CAIRO_MUTEX_IMPL_LOCK not defined" ^ ./cairo-mutex-type-private.h:142:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined" # error "CAIRO_MUTEX_IMPL_UNLOCK not defined" ^ ./cairo-mutex-type-private.h:151:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" ^ --- cairo-atomic.lo --- # error "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." ^ --- cairo-array.lo --- ./cairo-mutex-type-private.h:52:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_UNLOCK not defined. Check cairo-mutex-impl-private.h." ^ --- cairo-atomic.lo --- ./cairo-mutex-type-private.h:55:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." --- cairo-array.lo --- ./cairo-mutex-type-private.h:55:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." --- cairo-atomic.lo --- # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined. Check cairo-mutex-impl-private.h." ^ --- cairo-array.lo --- ^ --- cairo-atomic.lo --- ./cairo-mutex-type-private.h:139:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined" --- cairo-array.lo --- ./cairo-mutex-type-private.h:139:3: error: "CAIRO_MUTEX_IMPL_LOCK not defined" --- cairo-atomic.lo --- # error "CAIRO_MUTEX_IMPL_LOCK not defined" --- cairo-array.lo --- # error "CAIRO_MUTEX_IMPL_LOCK not defined" ^ ./cairo-mutex-type-private.h:142:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined" # error "CAIRO_MUTEX_IMPL_UNLOCK not defined" ^ ./cairo-mutex-type-private.h:151:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" --- cairo-atomic.lo --- ^ --- cairo-array.lo --- # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" ^ --- cairo-atomic.lo --- ./cairo-mutex-type-private.h:142:3: error: "CAIRO_MUTEX_IMPL_UNLOCK not defined" # error "CAIRO_MUTEX_IMPL_UNLOCK not defined" ^ ./cairo-mutex-type-private.h:151:3: error: "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" # error "CAIRO_MUTEX_IMPL_NIL_INITIALIZER not defined" ^ --- cairo-arc.lo --- ./cairo-mutex-type-private.h:161:9: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_mutex_t; ^ --- cairo-analysis-surface.lo --- ./cairo-mutex-type-private.h:161:9: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_mutex_t; ^ --- cairo-array.lo --- ./cairo-mutex-type-private.h:161:9: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_mutex_t; --- cairo-atomic.lo --- ./cairo-mutex-type-private.h:161:9: error: unknown type name 'cairo_mutex_impl_t' typedef cairo_mutex_impl_t cairo_mutex_t; ^ --- cairo-array.lo --- ^ --- cairo-atomic.lo --- 9 errors generated. --- cairo-arc.lo --- 9 errors generated. --- cairo-atomic.lo --- *** [cairo-atomic.lo] Error code 1 make[5]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src --- cairo-arc.lo --- *** [cairo-arc.lo] Error code 1 make[5]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src --- cairo-array.lo --- 9 errors generated. *** [cairo-array.lo] Error code 1 make[5]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src --- cairo-analysis-surface.lo --- In file included from cairo-analysis-surface.c:45: ./cairo-surface-snapshot-inline.h:54:5: warning: implicit declaration of function 'CAIRO_MUTEX_IMPL_LOCK' is invalid in C99 [-Wimplicit-function-declaration] CAIRO_MUTEX_LOCK (snapshot->mutex); ^ ./cairo-mutex-type-private.h:169:27: note: expanded from macro 'CAIRO_MUTEX_LOCK' #define CAIRO_MUTEX_LOCK CAIRO_MUTEX_IMPL_LOCK ^ In file included from cairo-analysis-surface.c:45: ./cairo-surface-snapshot-inline.h:56:5: warning: implicit declaration of function 'CAIRO_MUTEX_IMPL_UNLOCK' is invalid in C99 [-Wimplicit-function-declaration] CAIRO_MUTEX_UNLOCK (snapshot->mutex); ^ ./cairo-mutex-type-private.h:170:29: note: expanded from macro 'CAIRO_MUTEX_UNLOCK' #define CAIRO_MUTEX_UNLOCK CAIRO_MUTEX_IMPL_UNLOCK ^ cairo-analysis-surface.c:111:5: warning: implicit conversion from enumeration type 'enum _cairo_internal_surface_type' to different enumeration type 'cairo_surface_type_t' (aka 'enum _cairo_surface_type') [-Wenum-conversion] CAIRO_INTERNAL_SURFACE_TYPE_NULL, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:158:9: warning: implicit conversion from enumeration type 'enum _cairo_status' to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] return CAIRO_STATUS_SUCCESS; ~~~~~~ ^~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:164:19: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] return tmp->base.status; ~~~~~~ ~~~~~~~~~~^~~~~~ cairo-analysis-surface.c:177:46: warning: implicit conversion from enumeration type 'enum _cairo_int_status' to different enumeration type 'cairo_status_t' (aka 'enum _cairo_status') [-Wenum-conversion] analysis_status = tmp->has_unsupported ? CAIRO_INT_STATUS_IMAGE_FALLBACK : CAIRO_INT_STATUS_SUCCESS; ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:177:80: warning: implicit conversion from enumeration type 'enum _cairo_int_status' to different enumeration type 'cairo_status_t' (aka 'enum _cairo_status') [-Wenum-conversion] analysis_status = tmp->has_unsupported ? CAIRO_INT_STATUS_IMAGE_FALLBACK : CAIRO_INT_STATUS_SUCCESS; ~ ^~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:182:9: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] return status; ~~~~~~ ^~~~~~ cairo-analysis-surface.c:184:12: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] return analysis_status; ~~~~~~ ^~~~~~~~~~~~~~~ cairo-analysis-surface.c:282:9: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] return cairo_region_union_rectangle (&surface->supported_region, rect); ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:290:14: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] status = cairo_region_union_rectangle (&surface->fallback_region, rect); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:406:45: warning: implicit conversion from enumeration type 'enum _cairo_status' to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] cairo_int_status_t backend_source_status = CAIRO_STATUS_SUCCESS; ~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:407:43: warning: implicit conversion from enumeration type 'enum _cairo_status' to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] cairo_int_status_t backend_mask_status = CAIRO_STATUS_SUCCESS; ~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:490:11: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] status = _cairo_path_fixed_stroke_extents (path, style, ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:599:11: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] status = _cairo_scaled_font_glyph_device_extents (scaled_font, ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:675:11: warning: implicit conversion from enumeration type 'cairo_status_t' (aka 'enum _cairo_status') to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] status = _cairo_scaled_font_glyph_device_extents (scaled_font, ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:690:5: warning: implicit conversion from enumeration type 'enum _cairo_internal_surface_type' to different enumeration type 'cairo_surface_type_t' (aka 'enum _cairo_surface_type') [-Wenum-conversion] CAIRO_INTERNAL_SURFACE_TYPE_ANALYSIS, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:835:12: warning: implicit conversion from enumeration type 'enum _cairo_status' to different enumeration type 'cairo_int_status_t' (aka 'enum _cairo_int_status') [-Wenum-conversion] return CAIRO_STATUS_SUCCESS; ~~~~~~ ^~~~~~~~~~~~~~~~~~~~ cairo-analysis-surface.c:884:5: warning: implicit conversion from enumeration type 'enum _cairo_internal_surface_type' to different enumeration type 'cairo_surface_type_t' (aka 'enum _cairo_surface_type') [-Wenum-conversion] CAIRO_INTERNAL_SURFACE_TYPE_NULL, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19 warnings and 9 errors generated. *** [cairo-analysis-surface.lo] Error code 1 make[5]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src 4 errors make[5]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src *** [all] Error code 2 make[4]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src 1 error make[4]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18/src *** [all-recursive] Error code 1 make[3]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18 1 error make[3]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18 *** [all] Error code 2 make[2]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18 1 error make[2]: stopped in /usr/local/DEVEL/NeuPorts/head/graphics/cairo/work/cairo-1.12.18 ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1
I am building on native arm hardware (wandboard-quad): FreeBSD wqtest 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r280772M: Sat Mar 28 11:28:48 UTC 2015 gwgpi@wqtest:/usr/local/DEVEL/obj/usr/local/DEVEL/SRC/head/sys/WANDBOARD-QUAD arm There are no entries in make.conf and src.conf. The kernel is built with: options ARM_NEW_PMAP. I have not changed the ports default options.
(In reply to Ulrich Grey from comment #1) I think the problem is in gnu ld not the port itself, can you try https://reviews.freebsd.org/D2194 my build log on armv6hf, CURRENT r280132: http://mikael.urankar.free.fr/FreeBSD/arm/build_logs/cairo-1.12.18.log
I have patched the source tree FreeBSD 11.0-CURRENT #0 r280772M with this patch: https://reviews.freebsd.org/D2194 I have built a new image (crochet, wandboard-quad) and rebuilt graphics/cairo with all dependencies. Now the build completed successfully.
This issue was due to lack of support in binutils like the review linked in #2 mentioned. Since the problem has been fixed in HEAD, close this PR. Thanks for reporting.