Not exactly cross-compiling. Cross-installing. Installs stuff in /usr/lib64 for mips32. Makefile uses pkg-config instead of ${PKG_CONFIG}. Reproducible: Always
err, udev.pc is installed to /usr/share/pkgconfig and is not arch specific: <snip> $ cat /usr/share/pkgconfig/udev.pc Name: udev Description: udev Version: 210 udevdir=/lib/udev </snip> it should be using /lib/udev, always, never /lib32/udev or /lib64/udev. so it would seem your udev.pc is broken instead.
need complete build.log from the udev compilation that created the broken udev.pc and emerge --info and any information from the used build environment that you think is necessary in udev's source tree: $ grep udevlibexecdir Makefile.am Makefile.am:udevlibexecdir=$(rootprefix)/lib/udev and we pass --rootprefix= as empty from ebuild's econf, thus udevlibexecdir=/lib/udev, which ends up in: $ cat src/udev/udev.pc.in Name: udev Description: udev Version: @VERSION@ udevdir=@udevlibexecdir@