You can assign a section to a previously defined program segment by using :phdr. See PHDRS. If a section is assigned to one or more segments, then all subsequent allocated sections will be assigned to those segments as well, unless they use an explicitly :phdr modifier. You can use :NONE to tell the linker to not put the section in any segment at all.
Here is a simple example: PHDRS { text PT_LOAD ; } SECTIONS { .text : { *(.text) } :text }