Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jan 2011 23:44:57 +0000 (UTC)
From:      Alexander Kabaev <kan@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/libexec/rtld-elf rtld.c
Message-ID:  <201101282345.p0SNj5NY074791@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
kan         2011-01-28 23:44:57 UTC

  FreeBSD src repository

  Modified files:
    libexec/rtld-elf     rtld.c 
  Log:
  SVN rev 218051 on 2011-01-28 23:44:57Z by kan
  
  Eliminate the use of symlook_needed function in favor of DAGS.
  
  Place elements on DAG lists in breadth-first order. This allows us to
  walk pre-built list in all cases where breadth-first dependency chain
  enumeration is required.
  
  Fix dlsym on special handle obtained by dlopen(NULL, ...) to do what
  comment claims it does. Take advantage of recently added symlook_global
  function to iterate over main objects and global DAGs lists properly in
  search of a symbol. Since rtld itself provides part of the global
  namespace, search rtld_obj too.
  
  Remove recursion from init_dag and symlook_needed functions. Use
  symlook_needed for ELF filtee processing only and change lookup order
  used in the function to match the order used by Solaris runtime linker
  under same circumstances. While there, fix weak symbol handling in the
  loop so that we return the first weak symbol definition if no strong one
  was found, instead of the last one.
  
  Reviewed by: kib
  MFC after:   1 month
  
  Revision  Changes    Path
  1.170     +47 -67    src/libexec/rtld-elf/rtld.c



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