ECEn 424 Review Topics: Chapter 7
ECEn 424 Review Topics: Chapter 7
- Can you explain what each of the tools invoked by a compiler
driver does, including the pre-processor, the compiler itself, the
assembler, and the linker? (What kinds of files does each read and
write?)
- What are the main tasks that any linker must perform?
- What are the three types of object files?
- ELF relocatable object files:
- What types of information are stored in an ELF relocatable object
file?
- What sections are included in the file and why? (Why separate
parts of a program in this way?)
- What information exists specifically to allow relocation?
(What information is contained within a relocation entry and
which sections are affected by relocation?)
- What kind of symbol information is present?
- How are variables and functions with the "static" attribute
handled differently?
- What are the possible outcomes when duplicate symbol names are
defined?
- How are static libraries organized and how much of each is
included by the linker?
- What algorithm is used by the linker to resolve symbols for a
list of relocatable object files and archives? (What "baffling
link-time errors" can result?)
- What steps are taken when the linker performs relocation, and why
is relocation required?
- What kinds of information is present in an ELF executable object
file? (What are key differences with relocatable object files?)
- What are the actions taken by a loader with an executable object
file?
- What are the important differences between static and dynamic
linking?
- What are the important differences between static and shared
libraries?
- What functionality is provided to application programs under
Linux to load and link shared libraries at run (not load) time?
- What are the key characteristics of position-independent
code, and why is the global offset table important?
- What is library interpositioning, when can it occur, and
what role does the linker play in supporting it?
- Self test: Can you complete all practice problems in Chapter 7?
Updated for 3rd Edition of CS:APP