Created attachment 278029 [details] complete build.log Build fail with the following error CCLD libcairo.la Undefined symbols: "___cxa_rethrow", referenced from: QVector<double>::realloc(int, int)in libcairo_cxx.a(cairo-qt-surface.o) "operator new(unsigned long)", referenced from: _cairo_qt_surface_create_with_qpixmap in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_create_with_qpixmap in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_source_image(void*, _cairo_image_surface**, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_create_with_qimage in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_create_with_qimage in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_dest_image(void*, _cairo_rectangle_int*, _cairo_image_surface**, _cairo_rectangle_int*, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_dest_image(void*, _cairo_rectangle_int*, _cairo_image_surface**, _cairo_rectangle_int*, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_dest_image(void*, _cairo_rectangle_int*, _cairo_image_surface**, _cairo_rectangle_int*, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_dest_image(void*, _cairo_rectangle_int*, _cairo_image_surface**, _cairo_rectangle_int*, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_composite(_cairo_operator, _cairo_pattern const*, _cairo_pattern const*, void*, int, int, int, int, int, int, unsigned int, unsigned int, _cairo_region*)in libcairo_cxx.a(cairo-qt-surface.o) PatternToBrushConverter::PatternToBrushConverter(_cairo_pattern const*)in libcairo_cxx.a(cairo-qt-surface.o) PatternToBrushConverter::PatternToBrushConverter(_cairo_pattern const*)in libcairo_cxx.a(cairo-qt-surface.o) PatternToBrushConverter::PatternToBrushConverter(_cairo_pattern const*)in libcairo_cxx.a(cairo-qt-surface.o) "typeinfo for std::bad_alloc", referenced from: __ZTISt9bad_alloc$non_lazy_ptr in libcairo_cxx.a(cairo-qt-surface.o) (maybe you meant: __ZTISt9bad_alloc$non_lazy_ptr) "___cxa_end_catch", referenced from: QVector<double>::realloc(int, int)in libcairo_cxx.a(cairo-qt-surface.o) QVector<double>::realloc(int, int)in libcairo_cxx.a(cairo-qt-surface.o) "___gxx_personality_v0", referenced from: ___gxx_personality_v0$non_lazy_ptr in libcairo_cxx.a(cairo-qt-surface.o) (maybe you meant: ___gxx_personality_v0$non_lazy_ptr) "operator delete(void*)", referenced from: _cairo_qt_surface_create_with_qpixmap in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_create_with_qpixmap in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_source_image(void*, _cairo_image_surface**, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_finish(void*) in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_create_with_qimage in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_create_with_qimage in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_dest_image(void*, _cairo_rectangle_int*, _cairo_image_surface**, _cairo_rectangle_int*, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_acquire_dest_image(void*, _cairo_rectangle_int*, _cairo_image_surface**, _cairo_rectangle_int*, void**)in libcairo_cxx.a(cairo-qt-surface.o) _cairo_qt_surface_composite(_cairo_operator, _cairo_pattern const*, _cairo_pattern const*, void*, int, int, int, int, int, int, unsigned int, unsigned int, _cairo_region*)in libcairo_cxx.a(cairo-qt-surface.o) PatternToBrushConverter::PatternToBrushConverter(_cairo_pattern const*)in libcairo_cxx.a(cairo-qt-surface.o) PatternToBrushConverter::PatternToBrushConverter(_cairo_pattern const*)in libcairo_cxx.a(cairo-qt-surface.o) "___cxa_begin_catch", referenced from: QVector<double>::realloc(int, int)in libcairo_cxx.a(cairo-qt-surface.o) ld: symbol(s) not found collect2: ld returned 1 exit status
Created attachment 278031 [details] proposed patch Maybe libstdc++ is missing?? I was able to build the package (at least on Prefix MacOSX) with the attached patch.
ping. No one has this problem? I've installed using [ebuild UD ] x11-libs/cairo-1.10.2-r1 [1.10.2-r2] USE="X aqua glib qt4 svg -debug (-directfb) -doc (-drm) (-gallium) -opengl (-openvg) -static-libs -xcb"
I think this might be caused by the build using gcc, not g++. Apple gcc doesn't like that.
(In reply to comment #3) > I think this might be caused by the build using gcc, not g++. Apple gcc > doesn't like that. From generated src/Makefile: > libcairo_cxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ > $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ > $(AM_CXXFLAGS) $(CXXFLAGS) $(libcairo_cxx_la_LDFLAGS) \ > $(LDFLAGS) -o $@ (snip) > libcairo_cxx.la: $(libcairo_cxx_la_OBJECTS) $(libcairo_cxx_la_DEPENDENCIES) > $(AM_V_CXXLD)$(libcairo_cxx_la_LINK) $(am_libcairo_cxx_la_rpath) $(libcairo_cxx_la_OBJECTS) $(libcairo_cxx_la_LIBADD) $(LIBS) seems it built with CXX (should be g++)?
CXX should be g++, so the build stuff seems right. Odd. It probably barfs because everything is compiled using gcc, and just linked using g++. Since the package is in gx86, you are free to commit this change yourself, if you're confident about it. You could try building everything with g++ (CC=$CXX) and see if that works.
Feel free to apply your patch. I think it's related to qt4 USE-flag. (Prefix uses gx86 version directly)
(In reply to comment #6) > Feel free to apply your patch. I think it's related to qt4 USE-flag. (Prefix > uses gx86 version directly) Apply to gx86 tree? then CC to cairo maintainers to ask their comments.
What is the upstream status of this patch?
Created attachment 330914 [details, diff] Patch some additional makefiles that I needed With =x11-libs/cairo-1.12.8 on an amd64 prefix, I had to use the enclosed, which augments the original patch with several similar patches, to get it working... this approach kinda feels gross but I can't say I have any better ideas.