openblt

a hobby OS from the late 90s
git clone http://frotz.net/git/openblt.git
Log | Files | Refs | LICENSE

blt_i386.x (2381B)


      1 /* $Id: //depot/blt/util/blt_i386.x#2 $ */
      2 /* Modified by Sidney Cammeresi */
      3 
      4 OUTPUT_FORMAT("elf32-i386", "elf32-i386",
      5 	      "elf32-i386")
      6 OUTPUT_ARCH(i386)
      7 ENTRY(_start)
      8 /* Do we need any of these for elf?
      9    __DYNAMIC = 0;    */
     10 SECTIONS
     11 {
     12   /* Read-only sections, merged into text segment: */
     13   . = 0x1000 + SIZEOF_HEADERS;
     14   .interp     : { *(.interp) 	}
     15   .hash          : { *(.hash)		}
     16   .dynsym        : { *(.dynsym)		}
     17   .dynstr        : { *(.dynstr)		}
     18   .rel.text      : { *(.rel.text)		}
     19   .rela.text     : { *(.rela.text) 	}
     20   .rel.data      : { *(.rel.data)		}
     21   .rela.data     : { *(.rela.data) 	}
     22   .rel.rodata    : { *(.rel.rodata) 	}
     23   .rela.rodata   : { *(.rela.rodata) 	}
     24   .rel.got       : { *(.rel.got)		}
     25   .rela.got      : { *(.rela.got)		}
     26   .rel.ctors     : { *(.rel.ctors)	}
     27   .rela.ctors    : { *(.rela.ctors)	}
     28   .rel.dtors     : { *(.rel.dtors)	}
     29   .rela.dtors    : { *(.rela.dtors)	}
     30   .rel.init      : { *(.rel.init)	}
     31   .rela.init     : { *(.rela.init)	}
     32   .rel.fini      : { *(.rel.fini)	}
     33   .rela.fini     : { *(.rela.fini)	}
     34   .rel.bss       : { *(.rel.bss)		}
     35   .rela.bss      : { *(.rela.bss)		}
     36   .rel.plt       : { *(.rel.plt)		}
     37   .rela.plt      : { *(.rela.plt)		}
     38   .init          : { *(.init)	} =0x9090
     39   .plt      : { *(.plt)	}
     40   .text      :
     41   {
     42     *(.text)
     43     /* .gnu.warning sections are handled specially by elf32.em.  */
     44     *(.gnu.warning)
     45   } =0x9090
     46   _etext = .;
     47   PROVIDE (etext = .);
     48   .fini      : { *(.fini)    } =0x9090
     49   .rodata    : { *(.rodata)  }
     50   .rodata1   : { *(.rodata1) }
     51   /* Adjust the address for the data segment.  We want to adjust up to
     52      the same address within the page on the next page up.  */
     53   . = ALIGN(0x1000) + (ALIGN(8) & (0x1000 - 1));
     54   .data    :
     55   {
     56     *(.data)
     57     CONSTRUCTORS
     58   }
     59   .data1   : { *(.data1) }
     60   .ctors         : { *(.ctors)   }
     61   .dtors         : { *(.dtors)   }
     62   .got           : { *(.got.plt) *(.got) }
     63   .dynamic       : { *(.dynamic) }
     64   /* We want the small data sections together, so single-instruction offsets
     65      can access them all, and initialized data all before uninitialized, so
     66      we can shorten the on-disk segment size.  */
     67   .sdata     : { *(.sdata) }
     68   _edata  =  .;
     69   PROVIDE (edata = .);
     70   __bss_start = .;
     71   .sbss      : { *(.sbss) *(.scommon) }
     72   .bss       :
     73   {
     74    *(.dynbss)
     75    *(.bss)
     76    *(COMMON)
     77   }
     78   _end = . ;
     79   PROVIDE (end = .);
     80 }