One of my machines puts udev and kmod libraries in / and /usr, which means no other packages depending on udev can find them. This happens with udev-1.97-r8 and udev-200 Reproducible: Always Steps to Reproduce: 1. emerge -1 udev kmod 2. 3. Actual Results: Emerge complete ok, but ls -l /*udev* /*kmod* gives: lrwxrwxrwx 1 root root 16 Apr 3 17:55 /libkmod.so.2 -> libkmod.so.2.2.2 -rwxr-xr-x 1 root root 95888 Apr 3 17:55 /libkmod.so.2.2.2 lrwxrwxrwx 1 root root 16 Apr 3 21:11 /libudev.so.1 -> libudev.so.1.3.1 -rwxr-xr-x 1 root root 79100 Apr 3 21:11 /libudev.so.1.3.1 and ls -l /usr/*udev*: lrwxrwxrwx 1 root root 21 Apr 3 21:11 /usr/libgudev-1.0.so -> libgudev-1.0.so.0.1.3 lrwxrwxrwx 1 root root 21 Apr 3 21:11 /usr/libgudev-1.0.so.0 -> libgudev-1.0.so.0.1.3 -rwxr-xr-x 1 root root 38060 Apr 3 21:11 /usr/libgudev-1.0.so.0.1.3 lrwxrwxrwx 1 root root 20 Apr 3 21:11 /usr/libudev.so -> ..//libudev.so.1.3.1 Expected Results: Libraries should go in /lib /usr/lib like on all the other machines. The machine with the problem has /usr mounted separately.
Created attachment 344280 [details] emerge --info
emerge --info udev end bit: ================================================================= Package Settings ================================================================= sys-fs/udev-200 was built with the following: USE="acl firmware-loader gudev hwdb kmod openrc -doc -introspection -keymap (-selinux) -static-libs"
Provide a complete build.log here for starters.
Created attachment 344282 [details] build.log for udev-200
Seems like get_libdir from multilib.eclass is returning an empty string instead of 'lib' on your setup. I bet this breaks a lot more than just udev.
Thanks I had put DEFAULT_ABI="x86" in my make.conf which seemed to break it. Now I've commented it out it seems better. I don't understand the multilib stuff properly is there a straight forward writeup anywhere? Perhaps it could be added to/referred to from the safe cflags page? Could there be a sanity checker for multilib, like for java?
Closing as per Comment #6
(In reply to comment #6) > Thanks I had put > DEFAULT_ABI="x86" > in my make.conf which seemed to break it. > Now I've commented it out it seems better. Yeah, just don't do that. If you need help for using multilib, I would suggest starting with http://forums.gentoo.org/ instead. > I don't understand the multilib stuff properly is there a straight forward > writeup anywhere? Perhaps it could be added to/referred to from the safe > cflags page? I don't see how this is related to *flags except remotely, with -m32 type of flags. > Could there be a sanity checker for multilib, like for java? There is FEATURES="multilib-strict" but I don't think it will catch thesetype of issues, or even should. Overriding any major eclass/profiles variable can break the system in a minute, not something that is multilib specific.