Annotation of GNUtools/cc/config/m88k/dgux.ld, revision 1.1

1.1     ! root        1: /* m88kdgux.ld - COFF linker directives for G++ on an AViiON
        !             2: 
        !             3:    This file is part of GNU CC.
        !             4:    
        !             5:    GNU CC is free software; you can redistribute it and/or modify
        !             6:    it under the terms of the GNU General Public License as published by
        !             7:    the Free Software Foundation; either version 2, or (at your option)
        !             8:    any later version.
        !             9:    
        !            10:    GNU CC is distributed in the hope that it will be useful,
        !            11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            13:    GNU General Public License for more details.
        !            14:    
        !            15:    You should have received a copy of the GNU General Public License
        !            16:    along with GNU CC; see the file COPYING.  If not, write to
        !            17:    the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
        !            18:    
        !            19:    On The AViiON we start the output .text section somewhere after the
        !            20:    first 64kb (0x10000) of logical address space so that the first
        !            21:    64kb can be mapped out, thus catching references through null
        !            22:    pointers.  We actually start at 0x10200 (for efficiency).  Ideally,
        !            23:    we want the page offset of a given word of the .text (output)
        !            24:    section to be the same as it's page offset in the actual (output)
        !            25:    linked core file so that paging of the .text section is efficient.
        !            26:    In order to do this we allow for up to 0x200 bytes of header stuff
        !            27:    in the output (linked) object file.
        !            28:    
        !            29:    For .data, the OCS says that regions with different "protections"
        !            30:    (i.e. read/write, read-only) should not share any 4 megabyte chunk
        !            31:    of the logical address space, so we start the .data segment at the
        !            32:    first (lowest) 4 MB boundary past the end of the .text segment.
        !            33:    
        !            34:    For some reason, you can't start right at the 4 MB boundary.  You
        !            35:    have to start at some distance past that.  The distance must be
        !            36:    equal to the distance from the start of the last 64 KB segment in
        !            37:    the (output) .text segment to the actual end of the (output) .text
        !            38:    segment.  */
        !            39: 
        !            40: SECTIONS {
        !            41:   .text 0x10200 BLOCK(0x200) :
        !            42:     { *(.init) *(.initp) *(.finip) *(.text) *(.tdesc) }
        !            43: 
        !            44:   GROUP BIND (((((ADDR(.text) + SIZEOF(.text) - 1) / 0x400000) + 1) * 0x400000) + ((ADDR(.text) + SIZEOF (.text)) % 0x10000)) :
        !            45:     { .data : { *(.data) *(.ctors) *(.dtors) }
        !            46:       .bss  : {} }
        !            47: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.