Dear Wiki user, You have subscribed to a wiki page or wiki category on "Lucy Wiki" for change notification.
The "LucyBookClub" page has been changed by MarvinHumphrey: http://wiki.apache.org/lucy/LucyBookClub?action=diff&rev1=37&rev2=38 Comment: Add 2013-02-19, archive 2013-02-12. [[mailto:[email protected]|[email protected]]] == Upcoming Meetings == + + === Tuesday February 19, 7:00 pm PDT: === + + From PLP3: + {{{ + 15.1 Virtual Machines + 15.1.2 The Java Virtual Machine + }}} + + Review questions: 1-8 on page 784. + + From [[http://www.akkadia.org/drepper/dsohowto.pdf|How To Write Shared Libraries]] by Ulrich Drepper: + + {{{ + 1.5 Startup in the Dynamic Linker + 1.5.1 The Relocation Process + 1.5.2 Symbol Relocations + 1.5.3 The GNU-style Hash Table + 1.5.4 Lookup Scope + 1.5.5 GOT and PLT + 1.5.6 Running the Constructors + 1.6 Summary of the Costs of ELF + 1.7 Measuring ld.so Performance + }}} + + Review questions for the Drepper: + + 6. Why do NUL-terminated strings make horrible hash keys? + 7. How can _interposition_ be used to override the behavior of a named procedure? + 8. How can different C++ name mangling schemes have an impact on symbol hash lookup times? + 9. Compare ELF hash lookup with GNU-style hash lookup. + 10. Consider this source code, which consists of a declaration of a function `munge` and an int `foo` which must be defined elsewhere, and a function `munge_foo` which references both. + {{{ + int + munge(int num); + + extern int foo; + + int + munge_foo(void) { + munge(foo); + } + }}} + Narrate the following assembly generated for `munge_foo` when it is compiled as position-independent code. + {{{ + movl foo@GOT(%ebx), %eax + pushl (%eax) + call munge_foo@PLT + }}} + 11. Summarize the costs of the GOT (Global Offset Table) and the PLT (Procedure Linkage Table). + + + == Community Notes == + + Below are an excerpt of notes from previous meetings and or anything of interest related to the meetings. === Tuesday February 12, 7:00 pm PDT: === @@ -56, +111 @@ 3. If you're creating a very large application which takes a long time to link, how can you use shared libraries to minimize the edit-compile-test loop and maximize programmer efficiency? Compare this use of shared libraries to traditional separate compilation. 4. When loading the contents of an executable file into memory, why is it desirable to mark as many pages as possible non-writable? 5. Where must the `Elf32_Phdr` and `Elf64_Phdr` program header structs be located in an ELF object file? What is the first member in these program header structs? - - == Community Notes == - - Below are an excerpt of notes from previous meetings and or anything of interest related to the meetings. === Tuesday February 5, 7:00 pm PDT: ===
