On 03/30/2013 12:45 AM, Dan Egli wrote: > That's interesting. How did you differentiate them from the PPC libs? I > know most binaries look for the library by file name in each directory in > your library path (either from the LD_LIBRARY_PATH environment variable, or > those directories specified in /etc/ld.so.conf) and load the first matching > filename. So how did your Qemu know to run say /lib-x86/libc.so instead of > /lib/libc.so? Did you have some kind of funky ld.so magic? Or was there a > Qemu parameter that specified a lib directory for those files?
I believe a mini root file system was placed in a directory somewhere, like /usr/qemu/architecture. Note this idea is similar to how debian does multi-arch (32-bit on 64-bit), and in fact using a transparent emulator like qemu's user emulation system is one of the reasons stated why Debian and Ubuntu chose not to follow the LSB standard of using /usr/lib64 on 64-bit systems to accommodate multiarch. So presumably on these distros you'd follow multiarch conventions for installing the arm or ppc libraries. As for binary loading, it is all in the elf binaries and kernel custom loader (/usr/lib/binfmt.d/ on Fedora defines these), as Nicholas said. The same binfmt mechanism can also transparently load and run windows binaries in wine, though for security reasons it's not recommended, and not enabled by default on most distros that I know of. /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
