Kdelibs fails with undefined references with the latest libart_lgpl. Revdep-rebuild does _not_ pick up any issues and KDE runs just fine. /bin/sh ../libtool --silent --tag=CXX --mode=link i686-pc-linux-gnu-g++ -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -O2 -mtune=prescott -march=prescott -pipe -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fvisibility=hidden -fvisibility-inlines-hidden -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -Wl,-O1 -Wl,--sort-common -o libkdecore.la -rpath /usr/kde/3.5/lib -L/usr/qt/3/lib -R /usr/kde/3.5/lib -R /usr/kde/3.5/lib -R /usr/qt/3/lib -R /usr/lib -L/usr/lib -version-info 6:0:2 -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined fakes.lo vsnprintf.lo libkdecore_la.all_cpp.lo malloc/libklmalloc.la network/libkdecorenetwork.la svgicons/libkdesvgicons.la ../dcop/libDCOP.la ../libltdl/libltdlc.la -lXext -lresolv -lutil -L/usr/lib -lart_lgpl_2 -lm -lidn ../kdefx/libkdefx.la svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainter::setClippingRect(int, int, int, int)': libkdesvgicons_la.all_cpp.cpp:(.text+0x47b): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0x525): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainter::drawPolyline(QPointArray, int)': libkdesvgicons_la.all_cpp.cpp:(.text+0x6039): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0x615f): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainter::drawEllipse(double, double, double, double)': libkdesvgicons_la.all_cpp.cpp:(.text+0x624b): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0x63c6): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0x640c): undefined reference to `art_realloc(void*, unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L2611': libkdesvgicons_la.all_cpp.cpp:(.text+0x6491): undefined reference to `art_free(void*)' libkdesvgicons_la.all_cpp.cpp:(.text+0x64bb): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L2559': libkdesvgicons_la.all_cpp.cpp:(.text+0x66ac): undefined reference to `art_alloc(unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L2636': libkdesvgicons_la.all_cpp.cpp:(.text+0x72ff): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0x734b): undefined reference to `art_realloc(void*, unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L3211': libkdesvgicons_la.all_cpp.cpp:(.text+0x763e): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L3215': libkdesvgicons_la.all_cpp.cpp:(.text+0x8ea2): undefined reference to `art_alloc(unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainter::drawLine(double, double, double, double)': libkdesvgicons_la.all_cpp.cpp:(.text+0xa560): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0xa5dd): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainter::drawRectangle(double, double, double, double, double, double)': libkdesvgicons_la.all_cpp.cpp:(.text+0xa66b): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0xa734): undefined reference to `art_free(void*)' libkdesvgicons_la.all_cpp.cpp:(.text+0xa785): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0xa9cb): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0xaa0b): undefined reference to `art_realloc(void*, unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L3360': libkdesvgicons_la.all_cpp.cpp:(.text+0xaa94): undefined reference to `art_free(void*)' libkdesvgicons_la.all_cpp.cpp:(.text+0xaaf2): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `.L3364': libkdesvgicons_la.all_cpp.cpp:(.text+0xafae): undefined reference to `art_alloc(unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainter::drawPolygon(QPointArray)': libkdesvgicons_la.all_cpp.cpp:(.text+0xb2d7): undefined reference to `art_alloc(unsigned int)' libkdesvgicons_la.all_cpp.cpp:(.text+0xb45c): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainterHelper::KSVGIconPainterHelper(int, int, KSVGIconPainter*)': libkdesvgicons_la.all_cpp.cpp:(.text._ZN21KSVGIconPainterHelperC1EiiP15KSVGIconPainter[KSVGIconPainterHelper::KSVGIconPainterHelper(int, int, KSVGIconPainter*)]+0x221): undefined reference to `art_alloc(unsigned int)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainterHelper::~KSVGIconPainterHelper()': libkdesvgicons_la.all_cpp.cpp:(.text._ZN21KSVGIconPainterHelperD1Ev[KSVGIconPainterHelper::~KSVGIconPainterHelper()]+0x2f): undefined reference to `art_free(void*)' svgicons/.libs/libkdesvgicons.a(libkdesvgicons_la.all_cpp.o): In function `KSVGIconPainterHelper::drawPathInternal(_ArtVpath*, double*)': libkdesvgicons_la.all_cpp.cpp:(.text._ZN21KSVGIconPainterHelper16drawPathInternalEP9_ArtVpathPd[KSVGIconPainterHelper::drawPathInternal(_ArtVpath*, double*)]+0x61a): undefined reference to `art_free(void*)' libkdesvgicons_la.all_cpp.cpp:(.text._ZN21KSVGIconPainterHelper16drawPathInternalEP9_ArtVpathPd[KSVGIconPainterHelper::drawPathInternal(_ArtVpath*, double*)]+0x68b): undefined reference to `art_free(void*)' libkdesvgicons_la.all_cpp.cpp:(.text._ZN21KSVGIconPainterHelper16drawPathInternalEP9_ArtVpathPd[KSVGIconPainterHelper::drawPathInternal(_ArtVpath*, double*)]+0xa2c): undefined reference to `art_free(void*)' libkdesvgicons_la.all_cpp.cpp:(.text._ZN21KSVGIconPainterHelper16drawPathInternalEP9_ArtVpathPd[KSVGIconPainterHelper::drawPathInternal(_ArtVpath*, double*)]+0xa85): undefined reference to `art_alloc(unsigned int)' collect2: ld returned 1 exit status make[4]: *** [libkdecore.la] Error 1 make[4]: Leaving directory `/tmp/portage/kde-base/kdelibs-3.5.6-r2/work/kdelibs-3.5.6/kdecore' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/portage/kde-base/kdelibs-3.5.6-r2/work/kdelibs-3.5.6/kdecore' make[2]: *** [all] Error 2 make[2]: Leaving directory `/tmp/portage/kde-base/kdelibs-3.5.6-r2/work/kdelibs-3.5.6/kdecore' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/portage/kde-base/kdelibs-3.5.6-r2/work/kdelibs-3.5.6' make: *** [all] Error 2
Created attachment 111492 [details] emerge --info
P.S. I have the xeffects overlay installed, but this is occurring with the mainline kdelibs.
Created attachment 111515 [details] emerge info idem here but in chroot 32 bits on amd64. no pb on build for amd64
According to "http://lists-archives.org/kde-linux/01892-error-compiling-kdelibs-3-4-92.html" many of the art_alloc and art_free compiler error would go away if libart_lgpl is reverted back to 2.3.17.
Okay, I've bumped to 2.3.18-r1 with what I believe to be a fix for this. I don't have kde; can one of you try this?
Cancel that; upstream released 2.3.19 with the same fix; I'll bump to that.
Okay, 2.3.19 is in the tree, and supposed to fix this. Please re-open if it's still broken.
(In reply to comment #7) > Okay, 2.3.19 is in the tree, and supposed to fix this. Please re-open if it's > still broken. > Where can libart_lgpl be found? It's not in the tree - ie. it's not shown on http://packages.gentoo.org/search/?sstring=libart
Sorry Daniel, libart_lgpl-2.3.19 doesn't fix it for me. Please re-open. Thanx.
(In reply to comment #8) libart_lgpl-2.3.19 was in the tree after I did an "emerge --sync". Try re-synccing again and then re-emerging libart_lgpl.
It's not working for me either, but the functions seem to be in the library. nm --dynamic /usr/lib/libart_lgpl_2.so.2.3.19 00002989 T art_affine_equal 00002a0a T art_affine_expansion 000027a8 T art_affine_flip 000028ca T art_affine_identity 00002735 T art_affine_invert 00002835 T art_affine_multiply 00002700 T art_affine_point 0000292d T art_affine_rectilinear 00002a70 T art_affine_rotate 000028e9 T art_affine_scale 00002a23 T art_affine_shear 00002d17 T art_affine_to_string 0000290a T art_affine_translate 00003511 T art_alloc 00002f84 T art_alphagamma_free 00002fa7 T art_alphagamma_new 00011ed4 T art_bezier_to_vec 0001237c T art_bez_path_to_vec 000030f0 T art_bpath_affine_transform 000035a6 T art_die 00003534 T art_dprint 00003b6b T art_drect_affine_transform 00003a2e T art_drect_copy 00003a9a T art_drect_empty 00003a4f T art_drect_intersect 00003d98 T art_drect_svp 00003e38 T art_drect_svp_union 00003d3f T art_drect_to_irect 00003ac3 T art_drect_union 000034ee T art_free 000032f4 T art_gray_svp_aa 00003910 T art_irect_copy 00003971 T art_irect_empty 00003931 T art_irect_intersect 00003993 T art_irect_union 000037d2 T art_pixbuf_duplicate 0000389d T art_pixbuf_free 0000387a T art_pixbuf_free_shallow 0000378a T art_pixbuf_new_const_rgb 00003695 T art_pixbuf_new_const_rgba 00003740 T art_pixbuf_new_rgb 0000364b T art_pixbuf_new_rgba 000035e8 T art_pixbuf_new_rgba_dnotify 000036dd T art_pixbuf_new_rgb_dnotify 000034c4 T art_realloc 00003e80 T art_rect_list_from_uta 00005680 T art_render_add_image_source 000058f6 T art_render_add_mask_source 000041e0 T art_render_clear 00014330 D art_render_clear_16_obj 00014328 D art_render_clear_8_obj 00005747 T art_render_clear_rgb 00014320 D art_render_clear_rgb8_obj 00014340 D art_render_composite_8_obj 00014348 D art_render_composite_8_opt1_obj 00014350 D art_render_composite_8_opt2_obj 00014338 D art_render_composite_obj 00005f73 T art_render_gradient_linear 00005eb0 T art_render_gradient_radial 000056bc T art_render_image_solid 00005970 T art_render_invoke 00005152 T art_render_invoke_callbacks 00007110 T art_render_mask 0000519b T art_render_mask_solid 000057bf T art_render_new 0000733e T art_render_svp 000089f0 T art_rgb_a_affine 00007e1c T art_rgb_affine 00007fa0 T art_rgb_affine_run 00008dbe T art_rgba_fill_run 00008c90 T art_rgba_rgba_composite 00008df6 T art_rgba_run_alpha 00008238 T art_rgb_bitmap_affine 00007cbf T art_rgb_fill_run 00008678 T art_rgb_pixbuf_affine 000087a0 T art_rgb_rgba_affine 00007c34 T art_rgb_run_alpha 00009074 T art_rgb_svp_aa 00008f40 T art_rgb_svp_alpha 00009bce T art_svp_add_segment 0000b926 T art_svp_diff 00009b80 T art_svp_free 0000cc2b T art_svp_from_vpath 0000b97d T art_svp_intersect 0000b07e T art_svp_intersector 0000b882 T art_svp_minus 0000bb52 T art_svp_point_dist 0000ba2c T art_svp_point_wind 0000cb25 T art_svp_render_aa 0000ca73 T art_svp_render_aa_iter 0000bcc0 T art_svp_render_aa_iter_done 0000bd1c T art_svp_render_aa_iter_step 0000e50c T art_svp_rewind_uncrossed 00009ae4 T art_svp_seg_compare 0000f8ce T art_svp_uncross 0000b9d4 T art_svp_union 0000e248 T art_svp_vpath_stroke 0000dbbf T art_svp_vpath_stroke_raw 00009def T art_svp_writer_rewind_new 0000a094 T art_svp_writer_rewind_reap 00010d84 T art_uta_add_line 00010758 T art_uta_free 00010aa0 T art_uta_from_irect 0001194c T art_uta_from_svp 00011762 T art_uta_from_vpath 00010788 T art_uta_new 00010800 T art_uta_new_coords 00010850 T art_uta_union 00011e46 T art_vpath_add_point 00011a25 T art_vpath_affine_transform 0001198c T art_vpath_bbox_drect 00011ce8 T art_vpath_bbox_irect 000124f0 T art_vpath_dash 0001298e T art_vpath_from_svp 00011d23 T art_vpath_new_circle 00011b1d T art_vpath_perturb 0000356d T art_warn U __assert_fail U atan2 00014590 A __bss_start U ceil U cos w __cxa_finalize 00014590 A _edata 00014598 A _end U exit 00012d54 T _fini U floor U free U fwrite w __gmon_start__ U hypot 00002194 T _init w _Jv_RegisterClasses 000132f4 R libart_major_version 000132fc R libart_micro_version 000132f8 R libart_minor_version 00012d11 T libart_postinit 00012d0c T libart_preinit 0001458c D libart_version U malloc U memcpy U memmove U memset U pow U printf U puts U qsort U rand U realloc U sin U sprintf U sqrt U stderr U tan U vfprintf
*** Bug 168827 has been marked as a duplicate of this bug. ***
Okay, I have a real fix now. Thanks, flameeyes for pointing it out.
(In reply to comment #13) > Okay, I have a real fix now. Thanks, flameeyes for pointing it out. > When can I expect this fix in the portage-tree? I still get these undefined references when I try to build kdelibs(-3.5.6-r2).
This seems to have fixed it. Thanks! For those of us interested in more details, here's the fix: diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN libart_lgpl-2.3.19.orig/art_misc.h libart_lgpl-2.3.19/art_misc.h --- libart_lgpl-2.3.19.orig/art_misc.h 2007-01-01 18:59:22.000000000 -0500 +++ libart_lgpl-2.3.19/art_misc.h 2007-03-01 11:35:47.000000000 -0500 @@ -34,9 +34,15 @@ #include <libart_lgpl/art_config.h> #endif +#ifdef __cplusplus +extern "C" { +#endif void *art_alloc(size_t size); void art_free(void *ptr); void *art_realloc(void *ptr, size_t size); +#ifdef __cplusplus +} +#endif /* __cplusplus */ /* These aren't, strictly speaking, configuration macros, but they're damn handy to have around, and may be worth playing with for
*** Bug 170061 has been marked as a duplicate of this bug. ***