Suppose you have an operating system that supports many different micro
controller boards (RTEMS in our case).  Each board needs a linker command file
which supports it.  The boards tend to come in various flavors.  Some execute
code from flash others copy the code and constant data from a flash into a ram
during the system start.  Some have a small and fast and a big and slow ram or
a special purpose ram here and there etc.  So currently we have many copy and
paste linker command files that are only a little bit different.  This causes a
maintainance headache so the goal is to provide a basic linker command file for
each architecture that is included in the board dependend linker command files.

Example for a simple linker command base file (linkcmds.base):

SECTIONS {
        .text : {
                /* Code and constant data */
        } > TEXT_REGION

        .data : {
                /* Data */
        } > DATA_REGION

        .bss : {
                /* Zero initialized memory */
        } > BSS_REGION
}

Example for a board specific linker command file:

MEMORY {
        ROM_REGION (RX) : ORIGIN = 0x10000000, LENGTH = 256M
        RAM_REGION (AIW) : ORIGIN = 0x20000000, LENGTH = 256M
}

INCLUDE linkcmds.base

So now we have a problem to assign each region of the base file a region
provided by the board.  We need this flexibility due to the different memory
structures of the various boards.  A solution would be a new linker command
file function:

        REGION_ALIAS (alias, region_name)

With that the board specific linker command file would look like:

MEMORY {
        ROM_REGION (RX) : ORIGIN = 0x10000000, LENGTH = 256M
        RAM_REGION (AIW) : ORIGIN = 0x20000000, LENGTH = 256M
}

REGION_ALIAS (TEXT_REGION, ROM_REGION)

REGION_ALIAS (DATA_REGION, RAM_REGION)
REGION_ALIAS (BSS_REGION, RAM_REGION)

INCLUDE linkcmds.base

This would make the region facility much more flexible.

-- 
           Summary: New linker command file function: REGION_ALIAS
           Product: binutils
           Version: 2.20 (HEAD)
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: ld
        AssignedTo: unassigned at sources dot redhat dot com
        ReportedBy: sebastian dot huber at embedded-brains dot de
                CC: bug-binutils at gnu dot org


http://sourceware.org/bugzilla/show_bug.cgi?id=7031

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to