Skip to main content

Module layout

Module layout 

Source
Expand description

Layout, relaxation and fixup resolution.

Fragment sizes and symbol addresses depend on each other: an alignment’s padding depends on where it lands, and where it lands depends on how long the branches before it turned out to be. The pass below iterates to a fixed point. Instruction sizes only ever grow — chosen never decreases — so the branch half of the loop always terminates; the whole loop is bounded as well, since a .org or .space whose size depends on a later symbol can be written to oscillate.

Functions§

sleb128
uleb128