Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jun 1999 19:54:00 -0700 (PDT)
From:      John Polstra <jdp@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/libexec/rtld-elf rtld.c src/libexec/rtld-elf/alpha reloc.c rtld_machdep.h src/libexec/rtld-elf/i386 reloc.c rtld_machdep.h
Message-ID:  <199906250254.TAA94521@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
jdp         1999/06/24 19:54:00 PDT

  Modified files:
    libexec/rtld-elf     rtld.c 
    libexec/rtld-elf/alpha reloc.c rtld_machdep.h 
    libexec/rtld-elf/i386 reloc.c rtld_machdep.h 
  Log:
  Fix a serious performance bug for large programs on the Alpha,
  discovered by Hidetoshi Shimokawa.  Large programs need multiple
  GOTs.  The lazy binding stub in the PLT can be reached from any of
  these GOTs, but the dynamic linker only has enough information to
  fix up the first GOT entry.  Thus calls through the other GOTs went
  through the time-consuming lazy binding process on every call.
  
  This fix rewrites the PLT entries themselves to bypass the lazy
  binding.
  
  Tested by Hidetoshi Shimokawa and Steve Price.
  
  Reviewed by:	Doug Rabson <dfr@freebsd.org>
  
  Revision  Changes    Path
  1.24      +7 -7      src/libexec/rtld-elf/rtld.c
  1.5       +161 -43   src/libexec/rtld-elf/alpha/reloc.c
  1.2       +3 -1      src/libexec/rtld-elf/alpha/rtld_machdep.h
  1.3       +23 -27    src/libexec/rtld-elf/i386/reloc.c
  1.2       +9 -1      src/libexec/rtld-elf/i386/rtld_machdep.h



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906250254.TAA94521>