rela.dyn section

Nick Clifton nickc@redhat.com
Wed Jan 31 11:02:00 GMT 2007


Hi Stephen,

> /usr/local/powerpc-motorola-elf/bin/powerpc-motorola-elf-ld: error: no
> memory region specified for loadable section `.rela.dyn'


> I then compiled all the object files to assembly (including the ones
> that are in the static libraries (*.a) and grep'ed the resultant files:

You will also need to grep any dynamic libraries that are included in 
the final link as well

> I checked for the sections using a grep and there are plenty of .text,
> .data, ... sections but none of the above.

> What is the problem?

The .rela.dyn section contains the relocations that are needed by the 
dynamic linker (or run-time loader if you prefer) that are used to bind 
a shared library into a newly loaded executable.

> Why do I need to define the section?  Startup.exe
> is designed to be burned into rom.  

In which case it is unlikely that you actually want to use shared 
libraries and so you should not need to include this .real.dyn section 
in your linker map.

It looks like some or all of your program sources and/or libraries have 
been compiled to be shared (with -fpic or -fPIC).  You need to find 
these object files and recompile them.  It is also possible that you are 
using a shared version of the libgcc library, so check that, and if 
necessary create a static version instead.

> Should .rela.dyn be part of rom or part of ram?

If it is needed then it can be part of ROM.  It contains relocation 
information which is used to modify the .dyn section.  The .dyn section 
however should be in RAM.

Cheers
   Nick




More information about the Binutils mailing list