This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

linker scripting: locating overlays after main code


I have a question about linker scripting which I'd be grateful if anyone can
help me with.

I'm developing overlay support for an embedded system.  For various reasons,
what I would like to do is build an object file where the main code is
linked to run at the beginning of DRAM, and a bunch of overlays immediately
follow it.  The overlays include code from explicitly specified object
files.  All other code should appear before them.

Example: I have 500 object files, including ovl1.o and ovl2.o.  I would like
498 of the files to be linked starting at the beginning of DRAM, then
immediately following that should be an overlay containing ovl1.o and
ovl2.o.

I hit a big roadblock.  To put all objects other than ovl1 and ovl2 in a
certain place, I need to create a section using wildcards.  But the moment I
put a section with wildcards, it grabs EVERY file and I can't reference any
other objects later in the linker script.  So for example the following
doesn't work:

.Core:
{
    *(.text)
    *(.rules)
    *(.need)
    _etext = .;
    __etext = .;
    *(.dynamic)
    *(.got)
    *(.plt)
    *(.data)
    CONSTRUCTORS
    _edata  =  .;
    __edata  =  .;
    __bss_start = .;
    *(.bss)
    *(COMMON)
}

OVERLAY : NOCROSSREFS
{
    .ovl1
    {
        ovl1.*(.text)
        ovl1.*(.data)
        ovl1.*(.bss)
    }
    .ovl2
    {
        ovl2.*(.text)
        ovl2.*(.data)
        ovl2.*(.bss)
    }
}

Is there any way I can get this sort of thing to work?  So far I am using a
hack where I just hard-code the address where the overlays should show up.
However, that is not suitable for a production solution where the size of
.Core can vary greatly depending on the build configuration, and the
overlays should exactly follow it to save memory.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]