It has been fixed in the current bzr tree, would be possible provide a snapshot? To reproduce try to pass a value to PKG_CONFIG_SYSROOT_DIR env var, issue a pkg-config --libs and see the -L part being replaced and the -l part being wiped
minimal patch to fix the behaviour http://lists.freedesktop.org/archives/pkg-config/attachments/20080122/424351fe/attachment.ksh
doesn't sound too crazy and upstream included it.
I'll look at this and other pkg-config bugs this weekend
Patch works for me, # PKG_CONFIG_SYSROOT_DIR=/usr/armv4tl-softfloat-linux-gnueabi PKG_CONFIG_PATH=/usr/armv4tl-softfloat-linux-gnueabi/usr/lib/pkgconfig PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 pkg-config --libs openssl -L/usr/armv4tl-softfloat-linux-gnueabi/usr/lib -lssl -lcrypto -ldl # PKG_CONFIG_SYSROOT_DIR=/usr/armv4tl-softfloat-linux-gnueabi PKG_CONFIG_PATH=/usr/armv4tl-softfloat-linux-gnueabi/usr/lib/pkgconfig pkg-config --libs openssl -lssl -lcrypto -ldl ebuild can be taken here: http://gentoo.mindzoo.de/index.cgi/browser/openmoko/trunk/openmoko-target/dev-util/pkgconfig basically just simple, epatch fix.
In order to get cross build working always I had to update locally to the last commit in their bzr repo, looks like a snapshot could be a nicer solution...
The fix appears to be in pkgconfig-0.25.