adable segments must have one of these
keywords.

   The TYPE may be one of the following.  The numbers indicate the value
of the keyword.

'PT_NULL' (0)
     Indicates an unused program header.

'PT_LOAD' (1)
     Indicates that this program header describes a segment to be loaded
     from the file.

'PT_DYNAMIC' (2)
     Indicates a segment where dynamic linking information can be found.

'PT_INTERP' (3)
     Indicates a segment where the name of the program interpreter may
     be found.

'PT_NOTE' (4)
     Indicates a segment holding note information.

'PT_SHLIB' (5)
     A reserved program header type, defined but not specified by the
     ELF ABI.

'PT_PHDR' (6)
     Indicates a segment where the program headers may be found.

'PT_TLS' (7)
     Indicates a segment containing thread local storage.

EXPRESSION
     An expression giving the numeric type of the program header.  This
     may be used for types not defined above.

   You can specify that a segment should be loaded at a particular
address in memory by using an 'AT' expression.  This is identical to the
'AT' command used as an output section attribute (*note Output Section
LMA::).  The 'AT' command for a program header overrides the output
section attribute.

   The linker will normally set the segment flags based on the sections
which comprise the segment.  You may use the 'FLAGS' keyword to
explicitly specify the segment flags.  The value of FLAGS must be an
integer.  It is used to set the 'p_flags' field of the program header.

   Here is an example of 'PHDRS'.  This shows a typical set of program
headers used on a native ELF system.

     PHDRS
     {
       headers PT_PHDR PHDRS ;
       interp PT_INTERP ;
       text PT_LOAD FILEHDR PHDRS ;
       data PT_LOAD ;
       dynamic PT_DYNAMIC ;
     }

     SECTIONS
     {
       . = SIZEOF_HEADERS;
       .interp : { *(.interp) } :text :interp
       .text : { *(.text) } :text
       .rodata : { *(.rodata) } /* defaults to :text */
       ...
       . = . + 0x1000; /* move to a new page in memory */
       .data : { *(.data) } :data
       .dynamic : { *(.dynamic) } :data :dynamic
       ...
     }

