Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

dld: error: Can't relocate

dld: error: Can't relocate

dld: error: Can't relocate

on compiling my project i get the following error.
i am using Windriver workbench with Diab compiler

dld: "D:/Work/Test_bench/Transient_corr/windiss.dld", line 103: warning: Section '.text2' is not allocable, '> rom2' specification is ignored
dld: Symbol FLOAT_TEMP.1387 is out of address range
dld:   - Symbol is addressed using Small Data Area relative addressing
dld:   - Area name is SDA, SDA2 or SD0
dld:   - Area base is _SDA0_BASE_ 0x00000000
dld:   - Either the area has overflowed
dld:     or the symbol is not defined in the area
dld:     or the area sections are not placed in a same GROUP
dld:     or symbol _SDA0_BASE_ is not referenced from any object file
dld:   - Symbol is defined in section .sdata2 in file Delta_Nox/PPC5500FFdiab_DEBUG/DeltaNOxBerechnung_Component.o
dld:   - Symbol section is allocated at address 0x0002b010
dld:   - Symbol is referenced from file Delta_Nox/PPC5500FFdiab_DEBUG/DeltaNOxBerechnung_Component.o, at address 0x000209a0
dld:   - Symbol is referenced from section .text, section is allocated at 0x00020970
dld:   - Symbol is defined at address 0x0002b010
dld:   - Symbol is referenced with offset 0x00000000
dld: error: Can't relocate
X:\WindRiver\utilities-1.0\x86-win32\bin\make.exe: *** [PPC5500FFdiab_DEBUG/ECU9_FSW_SWIntegration.elf] Error 1


RE: dld: error: Can't relocate

Hi !

I had the same problem and after hours of searching I found the solution in a Windriver forum thread:

Please check if the _SDA_BASE_ and _SDA2_BASE_ symbols are referenced in the code. The linker does not define these symbols
unless they are referenced and this also causes this out of range

If a startup file similar to 4.3f/src/crtppc/crt0.s is used ,then
this is automatically taken care of. If a startup file which refers to these symbols is not used, then define these symbols in the linker command file like as below :

_SDA2_BASE_ = ADDR(.sdata2) + 0x7ff0;
_SDA_BASE_ = ADDR(.sdata) + 0x7ff0;

And a hint from my side: look at the .map file of the linker (which is already created when this error appears) to see if _SDA_BASE and _SDA_BASE2 is there or not.


Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close