Share on Facebook Share on Twitter Email
Answers.com

Relocation

 
Wikipedia: Relocation (computer science)

In computer science, relocation is the process of replacing symbolic references or names of libraries with actual usable addresses in memory before running a program. It is typically done by the linker during compilation (at compile time), although it can be done at runtime by a relocating loader. Compilers or assemblers typically generate the executable with zero as the lower-most starting address. Before the execution of object code, these addresses should be adjusted so that they denote the correct runtime addresses.

Relocation is typically done in two steps:

  1. Each object code has various sections like code, data, .bss etc. To combine all the objects to a single executable, the linker merges all sections of similar type into a single section of that type. The linker then assigns runtime addresses to each section and each symbol. At this point, the code (functions) and data (global variables) will have unique runtime addresses.
  2. Each section refers to one or more symbols which should be modified so that they point to the correct runtime addresses.

A fixup table -- a relocation table -- can also be provided in the header of the object code file. Each "fixup" is a pointer to an address in the object code that must be changed when the loader relocates the program. Fixups are designed to support relocation of the program as a complete unit. In some cases, each fixup in the table is itself relative to a base address of zero, so the fixups themselves must be changed as the loader moves through the table.[1] In some architectures, compilers, and executable models, a fixup that crosses certain boundaries (such as a segment boundary) or that does not lie on a word boundary is illegal and flagged as an error by the linker.[2]

See also

References

  1. ^ John R. Levine (October 1999). "Chapter 3: Object Files". Linkers and Loaders. Morgan-Kauffman. ISBN 1-55860-496-0. 
  2. ^ "Borland article #15961: Coping with 'Fixup Overflow' messages". http://vmlinux.org/~jakov/community.borland.com/15961.html. Retrieved 2007-01-15. 



Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 
Learn More
C.R.P.
Relocation Clause (business term)
internal migration

What is Relocation in computing? Read answer...
What is relocation diffusion? Read answer...
Meaning of relocate? Read answer...

Help us answer these
Are you relocating to CT?
Do lawyers have to relocate?
How do you relocate a toilet?

Post a question - any question - to the WikiAnswers community:

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Relocation (computer science)" Read more