| 1 |
>>>>> pageexec writes: |
| 2 |
pageexec> On 17 Apr 2008 at 20:38, Ashish Shukla wrote: |
| 3 |
|
| 4 |
>> Just to confirm, is LAZY loading means delay loading of all |
| 5 |
>> dependencies (shared objects) unless they're required (i.e. function |
| 6 |
>> present in one of the dependencies being invoked), right ? |
| 7 |
|
| 8 |
pageexec> it's not lazy loading but lazy binding (of .plt/.got entries), that is, |
| 9 |
pageexec> the .so modules are loaded as usual as required by DT_NEEDED entries. |
| 10 |
|
| 11 |
pageexec> what differs is the time when undefined symbols are resolved. BIND_NOW |
| 12 |
pageexec> enforces that resolution at .so load time so if there're any unresolved |
| 13 |
pageexec> symbols (which may never be used in a given run or at all) in the given |
| 14 |
pageexec> .so, ld.so will complain. normally an .so should have all dependent libs |
| 15 |
pageexec> listed in DT_NEEDED (and not have unresolvable symbols at all) but the X |
| 16 |
pageexec> module load code is a bit weird and bends these rules, hence the problems. |
| 17 |
|
| 18 |
Thanks for this explanation. |
| 19 |
-- |
| 20 |
Ashish Shukla आशीष शुक्ल http://wahjava.wordpress.com/ |
| 21 |
·-- ·- ···· ·--- ·- ···- ·- ·--·-· --· -- ·- ·· ·-·· ·-·-·- -·-· --- -- |