Hi Guys, I have been trying to compile pixman for "years" now and then I came onto the following : /usr/lib/libgdk-x11-2.0.so: undefined reference to `XineramaQueryScreens' /usr/lib/libgdk-x11-2.0.so: undefined reference to `XineramaIsActive' collect2: ld returned 1 exit status make[2]: *** [composite-test] Error 1 make[2]: Leaving directory `/var/tmp/portage/x11-libs/pixman-0.10.0/work/pixman-0.10.0/test' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/x11-libs/pixman-0.10.0/work/pixman-0.10.0' make: *** [all] Error 2 * * ERROR: x11-libs/pixman-0.10.0 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2926: Called x-modular_src_compile * environment, line 3712: Called x-modular_src_make * environment, line 3748: Called die * The specific snippet of code: * emake || die "emake failed" * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/x11-libs/pixman-0.10.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/x11-libs/pixman-0.10.0/temp/environment'. * I found what the problem was using the following commands: ldd /usr/lib/libgtk-x11-2.0.so <snip> libXinerama.so.1 => not found </snip> I then "emerge libXinerama" and retried pixman and all was well. I have done quite a few "emerge -Due world" to try and solve this problem. I think that pixman should have a dep. on libxinerama ? Thanks, Pieter Reproducible: Always Steps to Reproduce: 1. emerge pixman 2. 3. Actual Results: Compile failed Expected Results: Compile to complete
As your error states, it's a dep of gtk and gtk does depend on it, when xinerama useflag is set. As such, this looks like a problem with your useflags (probably you set/unset something and revdep-rebuild has missed it or you failed to run it).
Hi Rafal, (I think ?) You are right, it's not in my useflags, but must it be in the useflags if something depends on it ? Thanks, Pieter
Copy/paste, when in doubt. As for your problem, it looks like at some point xinerama was among your useflags. During that time, you've compiled gtk+. Later, for some reason you unset it and unmerged libXinerama (perhaps incorrect use of depclean). As such gtk+ got broken.
Looks like you need to run revdep-rebuild... x11-libs/pixman doesn't depend on Xinerama in any way.
Hi Guys, I ran revdep-rebuild and it tries to rebuild gtk+, at that stage it failed somewhere. I can't remember the point, but I think it also tried to rebuild pixman,cairo and then gtk+. My point is that surely somewhere between "emerge -Due world" and "revdep-rebuild" one must have picked up that hang on...we need libXinerama. Maybe a check can be build into revdep-rebuild for this sort of thing ?