On Wed, 4 Sep 2002, Ralf Baechle wrote:
> #define __NR_uselib (__NR_Linux + 86)
> a.out support. Do we really want that.
Well, it's support for Linux-a.out-style shared libraries, which are
actually binary-format independent. Quick summary of how they work in
The file argument to uselib must have 1 or 2 program headers. Exactly
one of them must be PT_LOAD. That segment is loaded at the fixed
virtual address specified in in the header. It's marked readable,
writable, executable, and any BSS region is zeroed.
I contemplated using uselib(2) in snow and decided that I wanted
multiple segments to support text and rodata being read-only. I
figured that attempting to communicate the read-only nature of the
maps to the VM could elicit more efficient behavior.
Anyway, now that we have ELF interpreters you can get one library
loaded into core for you by the kernel. That library can define a
more reasonable version of uselib in userspace...
I guess my point is that even the tiny set of people doing statically
linked shared libraries will probably avoid this syscall.