• Problem about .dld symbol with small data area (PowerPC)

    From manoj.7390@gmail.com@21:1/5 to yando...@gmail.com on Mon Dec 31 21:00:26 2018
    On Thursday, December 5, 2013 at 9:08:19 PM UTC+5:30, yando...@gmail.com wrote:
    I am making an elf with diab dld, but got small data area problems, saying symbol __DATA_ROM is out of address range
    - symbol is addressed using small data area relative addressing
    - area name is SDA, SDA2 or SD0
    - area base is _SDA0_BASE_ 0x00000000
    ....
    ....

    I checked the manual, but can not find anything about SD0....

    My -Xsmall-data and -Xsmall-const are both 8. I also set r2 and r13 with _SDA2_BASE_ and _SDA_BASE in crt0.o

    Several symbols(eg. __DATA_RAM, __DATA_END) have the same problems, which are all from the .dld file. From the error message I can see all the symbols are defined in .data section of RAM, and is referenced from .text section in ROM. This should be
    correct, coz they are all 32bit address data which are longer than 8, and they should stay in .data section. The point is why they are addressed using small data area relative addressing? They are declared in .c files like: extern CPU_32U __DATA_ROM
    which should not be treated as small data...

    Anybody has any idea about how the symbols in .dld file are allocated by diab linker, which section do they go and how do we assign where they go?



    // Hello, you are able to solve this issue..? I am having the same problem.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)