Roland Mainz wrote:

Question for the linker folks/aliens: Would it make sense to use _both_
"-Bdirect" (e.g. OS/Net default) and -"z lazyload" at the same time ? At
least "dbx" does not seem to care about -Bdirect and loads all libraries
while using "-z lazyload" causes "dbx" to load the libraries "on demand"
...

-Bdirect enables -z lazyload, so adding the latter to the former
is a noop.   I don't understand how dbx's behavior would be changed
over using these two options.

You can confirm what you've asked for with elfdump(1).  Direct
bindings are recorded in the Syminfo section, so are lazy loads:

chaz 401. elfdump -y /lib/libnsl.so.1 | fgrep libmp.so.2
      [39]  DBL          [1] libmp.so.2               mp_mtox
     [236]  DBL          [1] libmp.so.2               mp_pow
     [291]  DBL          [1] libmp.so.2               mp_mdiv
     [350]  DBL          [1] libmp.so.2               mp_mult
     .....

DB = directly bound.
L  = lazy load.

Lazy loads also show up in the .dynamic section:

chaz 400. elfdump -d /lib/libnsl.so.1

Dynamic Section:  .dynamic
     index  tag                value
       [0]  POSFLAG_1         0x1                 [ LAZY ]
       [1]  NEEDED            0x8e20              libmp.so.2
       ...

There are a number of options, -z lazyload/nolazyload and
-z direct/nodirect, and some mapfile options, that can provide
fine-grained control over lazy loading and direct binding.
-Bdirect is the simple big hammer, and all most folks should need.

If you want to know all the possible binding permutations:

http://docs.sun.com/app/docs/doc/819-0690/aehzq?l=en&a=view

--
Rod
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to