Products
and Services Support
and Docs Training Partner Programs About Red
Hat
  download storecart
red hat logo
redhat.comredhat network

Red Hat Documentation

ld Sections Contents|Index|Previous|Next
ld sections

ld deals with the following kinds of sections.
 
    named sections
    text section
    data section
      These sections hold your program. as and ld treat them as separate but equal sections. Anything you can say of one section is true for another. When the program is running, however, it is customary for the text section to be unalterable. The text section is often shared among processes: it contains instructions, constants and the like. The data section of a running program is usually alterable; for example, C variables would be stored in the data section.
    bss section
      This section contains zeroed bytes when your program begins running. It is used to hold uninitialized variables or common storage. The length of each partial program’s bss section is important; but, because it starts out containing zeroed bytes, there is no need to store explicit zero bytes in the object file. The bss section was invented to eliminate those explicit zeros from object files.
    absolute section
      Address, 0, of this section is always relocated to runtime address, 0. This is useful if you want to refer to an address that ld must not change when relocating. In this sense, we speak of absolute addresses being unrelocatable: they do not change during relocation.
    undefined section
      This section is a catch-all for address references to objects not in the preceding sections.
An idealized example of three relocatable sections follows. The following example uses the traditional section names .text and .data. Memory addresses are on the horizontal axis.

Partial program #1:
 text                               data                            bss 
 
 ttttt                              dddd                            00              

Partial program #2:
 text                               data                            bss 
 
 TTT                                DDDD                            000              

Linked program:
  text                              data                            bss 
 
  TTT ttttt   dddd    DDDD                            00000 ...

Addresses:
   0...


Top|Contents|Index|Previous|Next

 

 


 
© 2001 Red Hat, Inc. All rights reserved.
About Red Hat  :  Legal statement  :  Privacy statement  :  Y2K statement  :  Contact Red Hat