CVSROOT:        /cvs
Module name:    src
Changes by:     guent...@cvs.openbsd.org        2019/08/04 17:51:45

Modified files:
        libexec/ld.so  : resolve.h resolve.c dlfcn.c loader.c 
        libexec/ld.so/aarch64: rtld_machine.c 
        libexec/ld.so/alpha: rtld_machine.c 
        libexec/ld.so/amd64: rtld_machine.c 
        libexec/ld.so/arm: rtld_machine.c 
        libexec/ld.so/hppa: rtld_machine.c 
        libexec/ld.so/i386: rtld_machine.c 
        libexec/ld.so/m88k: rtld_machine.c 
        libexec/ld.so/mips64: rtld_machine.c 
        libexec/ld.so/powerpc: rtld_machine.c 
        libexec/ld.so/sh: rtld_machine.c 
        libexec/ld.so/sparc64: rtld_machine.c 

Log message:
Simplify _dl_find_symbol().  Currently, it returns three values:
- the symbol it found, returned via the second argument
- the base offset of the the object it was found in, via the return value
- optionally: the object it was found in, returned via the last argument

Instead, return a struct with the symbol and object pointers and let the
caller get the base offset from the object's obj_base member.  On at least
aarch64, amd64, mips64, powerpc, and sparc64, a two word struct like this
is passed in registers.

ok mpi@, kettenis@

Reply via email to