This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

"warning #10281-D: Section ".srioSharedMem" requires a STATIC_BASE relative relocation..."

Hello,

I am getting this warning report when I try to place variables in shared memory. I do this quite often and this is the first time this happened and I don't understand what the warning means, not to mention my exectuable still builds. It does not run properly but I am not sure if this is becuase of the warnings or a logical error. Could someone please comment on the situation?

Code Composer Studio Version: 5.1.0.09000

C6000 compilier

C6678 EVM

(PS - it was recommended I move the post from this link: http://e2e.ti.com/support/embedded/bios/f/355/p/184077/726160.aspx#726160)

Thanks,
Brandy

This is the configuration line in my .cfg:

Program.sectMap[".srioSharedMem"] = "MSMCSRAM";

Here is the code:

#ifdef __cplusplus

#pragma DATA_ALIGN (128)

#pragma DATA_SECTION(".srioSharedMem")

TrackerCfgStruct glTrackercfg;

#pragma DATA_ALIGN (128)

#pragma DATA_SECTION(".srioSharedMem")

unsigned int glAssocationStartFlag;

#pragma DATA_ALIGN (128)

#pragma DATA_SECTION(".srioSharedMem")

unsigned int glSolverStartFlag;

#else

Here are the warnings:

"./configPkg/linker.cmd", line 283: warning #10237-D: split placement (>>) ignored for ".srioSharedMem": split run placement for this section is not permitted

warning #10281-D: Section ".srioSharedMem" requires a STATIC_BASE relative relocation, but is located at 0x0c039c00, which is probably out of range of the STATIC_BASE. STATIC_BASE is located at 0x00867a00. Might be required to correct placement of ".srioSharedMem" so it lies within 0x8000 of the STATIC_BASE.

warning #10281-D: Section ".srioSharedMem" requires a STATIC_BASE relative relocation, but is located at 0x0c039c00, which is probably out of range of the STATIC_BASE. STATIC_BASE is located at 0x00867a00. Might be required to correct placement of ".srioSharedMem" so it lies within 0x8000 of the STATIC_BASE.

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "associationTask" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssocate_MT.obj", offset = 0x00000160, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "associationTask" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x0000016c, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "associationTask" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x00000174, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "associationTask" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file ="C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x000001b4, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "associationTask" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file ="C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x000001c4, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "associationTask" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x000001cc, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "Execute" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file ="C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x0000046c, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "Execute" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file ="C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x00000478, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "Execute" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x00000484, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D:relocation from function "Execute" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x0000048c, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "Execute" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x00000498, section = ".text")

"C:/Users/brandy/Workspace/TI_Libraries/pdk_C6678_1_0_0_21/packages/ti/csl/csl_cacheAux.h", line 668: warning #17003-D: relocation from function "Execute" to symbol "glAssocationStartFlag" overflowed; the 26-bit relocated address 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), file = "C:/Users/brandy/Workspace/PXMTracking/trunk/bin/pxm_tracking/MHTAssociate_MT.obj", offset = 0x000004a0, section = ".text")

warning #10015-D: output file "../../bin/pxm_tracking/PXMTracking.out" cannot be loaded and run on a target system

'Finished building target: ../../bin/pxm_tracking/PXMTracking.out'

 

 

Thanks, brandy

 

  • Also, here is a peice of the map file generated, if that's helpful.

    .msmcsramHeap

    *          0    0c000000    00039c00     UNINITIALIZED

                      0c000000    00039c00     pxmTracking_pe66.oe66 (.msmcsramHeap)

    .srioSharedMem

    *          0    0c039c00    0000cf00     UNINITIALIZED

                      0c039c00    0000c8ef     electrocardiography.obj (.srioSharedMem)

                      0c0464ef    00000011     --HOLE--

                      0c046500    00000484     tracking.obj (.srioSharedMem)

                      0c046984    0000007c     --HOLE--

                      0c046a00    00000100     ti.drv.srio.ae66 : srio_drv.oe66 (.srioSharedMem)

  • The linker is complaining that you are placing this section too far away from .bss. 

    Most likely, you don't want these variables to be "near", so you should declare them "far":

    unsigned int far glSolverStartFlag;
  • Hello Archie,

    I tried as you said and it did not help.  I have noticed now, that the warning is appearing related to the caching function calls.

    Here is my entire memory map. .bss is in L2SRAM and I am trying to use MSMCSRAM.

    Program.sectMap["systemHeap"]            = "L2SRAM";

    Program.sectMap[".cio"]                  = "L2SRAM";

    Program.sectMap[".far"]                  = "L2SRAM";

    Program.sectMap[".rodata"]               = "L2SRAM";

    Program.sectMap[".neardata"]             = "L2SRAM";

    Program.sectMap[".bss"]                         = "L2SRAM";

    Program.sectMap[".stack"]                = "L2SRAM";

    Program.sectMap[".nimu_eth_ll2"] = "L2SRAM";

    Program.sectMap[".myLocalMemory"] = "L2SRAM";

    Program.sectMap[".cinit"]                = "L2SRAM";  //might work in DDR3

    Program.sectMap[".fardata"]              = "L2SRAM";

    //Program.sectMap[".vecs"]               = "L2SRAM";

    Program.sectMap[".csl_vect"]             = "L2SRAM";

    Program.sectMap[".msmcsramHeap"] = "MSMCSRAM";

    Program.sectMap[".srioSharedMem"] = "MSMCSRAM";

     

    Also,  if I comment out all of my caching code for these variables (other variables work fine) the warning goes away.

    Can you please explain more about the warning, so I can try to figure out why the cache code is having this problem?  I am using the TI CSL Cache library.  For example here:

    while ((CSL_semAcquireDirect (CONFIG_HW_SEM)) == 0);

    {

    CACHE_invL1d((void *) &cfg, sizeof(TrackerCfgStruct), CACHE_WAIT);

    memcpy(cfg, &DEFAULT_TRACKER_CFG, sizeof(TrackerCfgStruct));

    CACHE_wbL1d((void *)&cfg, sizeof(TrackerCfgStruct), CACHE_WAIT);

    }CSL_semReleaseSemaphore (CONFIG_HW_SEM);

     

    Thanks!

    Brandy

  • One more peice to note, I am compiling in C++, in case that was clear.

  • Did you remember to put "far" in the declarations for these variables in the header files?

  • Huh.  Sure didn't.  They don't call you the expert for nothin'! :)

    How did you know that was the problem based on the error?  Just so I know what to look for in the future.

    Thanks bunches!

  • The first warning begins:

    warning #10281-D: Section ".srioSharedMem" requires a STATIC_BASE relative relocation, [..]

    This says that the variables in section .srioSharedMem use near addressing.  Near addressing is performed relative to the DP (B14) register, which is loaded with the "static base" value during boot.  The DP has limited reach, so all near-addressed global variables need to be packed pretty close together.   It is uncommon for global variables in user-defined data sections to be addressed through DP, so the universal suggestion is to use far addressing when using #pragma DATA_SECTION.  The rest of the warning message goes into more detail about why near addressing might be the problem.

    The following warning:

    warning #17003-D: relocation from [..] overflowed; [..] 0x2df7bb2 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_W' (13), [..]

    is a common effect of using near addressing when you really need far addressing.  Note the _SBR_ in the relocation type, which means "static base relative".

    As for the reminder about the header files, failing to keep the header files in sync with the source file is a very frequent problem, so it came to mind immediately.  This was further reinforced by the fact that that for C6000, near and far addressing matters when accessing an object, not when defining it, which means it's more important for the header file declaration to be correct than the definition.

  • thanks for the details.  I really appreciate being able to understand the problem rather than just knowing the solution.  Also, thank you for being so prompt in your reply!

    Brandy

  • Hi,

    I was having the same error message stated in this thread and tried your suggestion on placing far in the global variables defined. Yet I am getting this other error message after doing that:

    error #10319-D: symbols in the reserved far sections cannot be accessed as

    near; symbol "eth_status" in the far section "./HMOS/hmos_comp.obj(.far)" is

    accessed as near in the section "./Ethernet/eth_init.obj(.text)"

    Any suggestions?

    Thanks,

    Michelle

  • You need to make all of the declarations of such objects "far", not just the definition.  That is:

    extern far sometype whatever;
  • That resolves the issue.

    Thank you so much!!

    Michelle

  • Hi Archaeologist,

    I have encountered a similar problem. Part of the warning shown below:

    "../Main/Guide.cpp", line 40: warning #17003-D:relocation from function "Derivative" to symbol "$P$T0$1" overflowed; the 16-bit relocated address 0xc480 is too large to encode in the 15-bit unsigned field (type = 'R_C6000_SBR_U15_B' (11), file = "./Main/Guide.obj", offset = 0x00000444, section = ".text")

    the "Derivative" is a virtual function Inherited from parent class. How do I know what the  symbol "$P$T0$1" is and 

    declare it to far?

  • The symbol $P$T0$1 is a compiler-generated global variable; you cannot control it directly.  You need to use  --mem_model:data=far when compiling that file to make all variables defined in that file, including $P$T0$1, far variables.

  • Hi Archaeologist,

    I have solved that warning using mem_model:data=far. However, some warnings still exist:

    warning #10281-D: Section ".bss" requires a STATIC_BASE relative relocation, but is located at 0x911d9218, which is probably out of range of the STATIC_BASE. STATIC_BASE is located at 0x911ccce0. Might be required to correct placement of ".bss" so it lies within 0x8000 of the STATIC_BASE.
    warning #10281-D: Section ".rodata" requires a STATIC_BASE relative relocation, but is located at 0x911d928c, which is probably out of range of the STATIC_BASE. STATIC_BASE is located at 0x911ccce0. Might be required to correct placement of ".rodata" so it lies within 0x8000 of the STATIC_BASE.
    warning #10281-D: Section ".bss" requires a STATIC_BASE relative relocation, but is located at 0x911d9218, which is probably out of range of the STATIC_BASE. STATIC_BASE is located at 0x911ccce0. Might be required to correct placement of ".bss" so it lies within 0x8000 of the STATIC_BASE.
    warning #10281-D: Section ".rodata" requires a STATIC_BASE relative relocation, but is located at 0x911d928c, which is probably out of range of the STATIC_BASE. STATIC_BASE is located at 0x911ccce0. Might be required to correct placement of ".rodata" so it lies within 0x8000 of the STATIC_BASE.
    'Finished building target: Copy of TrajTest.out'

    Will it affect the normal execution of the program ?  If so,what can I do?

  • That warning usually indicates a severe problem with the program; it will probably not run correctly.  Some file in your application was compiled with near data model, or uses the "near" keyword on some global variable.  Please generate the linker map file (--map_file linker option) and post it here.

  • Hi Archaeologist,

    some information about map file as fllow

    
    
    .bss       0    911d93f8    00000074     UNINITIALIZED
                      911d93f8    00000018     hal_timer_bios.ae66 : lltimer.oe66 (.bss)
                      911d9410    00000014     stk6_ppp_pppoe.ae66 : igmp.oe66 (.bss)
                      911d9424    0000000c     ti.transport.ndk.nimu.ae66 : nimu_eth.obj (.bss)
                      911d9430    00000008     netctrl.ae66 : netctrl.oe66 (.bss)
                      911d9438    00000008     nettool.ae66 : daemon.oe66 (.bss)
                      911d9440    00000008     stk6_ppp_pppoe.ae66 : ip.oe66 (.bss)
                      911d9448    00000008                         : nimupppoe.oe66 (.bss)
                      911d9450    00000004     Test_pe66.oe66 (.bss)
                      911d9454    00000004     nettool.ae66 : ipaddr.oe66 (.bss)
                      911d9458    00000004     rts6600_elf_mt.lib : dtor_list.obj (.bss)
                      911d945c    00000004     stk6_ppp_pppoe.ae66 : ipv6_frag.oe66 (.bss)
                      911d9460    00000004                         : lli6.oe66 (.bss)
                      911d9464    00000004                         : rtable.oe66 (.bss)
                      911d9468    00000004     ti.platform.evm6678l.ae66 : evmc66x_spi.obj (.bss)
    
    
    
    
    .neardata 
    *          0    880fb1e0    00000181     RUN ADDR = 911ccec0
                      880fb1e0    00000044     nettool.ae66 : httpstr.oe66 (.neardata)
                      880fb224    00000024     os.ae66 : mem.oe66 (.neardata)
                      880fb248    00000018     netctrl.ae66 : netctrl.oe66 (.neardata)
                      880fb260    00000018     os.ae66 : task.oe66 (.neardata)
                      880fb278    00000014     stk6_ppp_pppoe.ae66 : rtable.oe66 (.neardata)
                      880fb28c    00000010     nettool.ae66 : daemon.oe66 (.neardata)
                      880fb29c    00000010     stk6_ppp_pppoe.ae66 : bind6.oe66 (.neardata)
                      880fb2ac    00000010                         : igmp.oe66 (.neardata)
                      880fb2bc    0000000c                         : route6.oe66 (.neardata)
                      880fb2c8    00000008                         : exec.oe66 (.neardata)
                      880fb2d0    00000008                         : icmp.oe66 (.neardata)
                      880fb2d8    00000008                         : ip.oe66 (.neardata)
                      880fb2e0    00000008                         : ipin.oe66 (.neardata)
                      880fb2e8    00000008                         : ipv6_frag.oe66 (.neardata)
                      880fb2f0    00000008                         : lli.oe66 (.neardata)
                      880fb2f8    00000008                         : nimupppoe.oe66 (.neardata)
                      880fb300    00000008                         : rtc.oe66 (.neardata)
                      880fb308    00000008                         : tcp.oe66 (.neardata)
                      880fb310    00000008                         : tcp6.oe66 (.neardata)
                      880fb318    00000008                         : timer.oe66 (.neardata)
                      880fb320    00000008     ti.platform.evm6678l.ae66 : platform.obj (.neardata)
                      880fb328    00000004     hal_timer_bios.ae66 : lltimer.oe66 (.neardata)
                      880fb32c    00000004     netctrl.ae66 : netsrv.oe66 (.neardata)
                      880fb330    00000004     nettool.ae66 : config.oe66 (.neardata)
                      880fb334    00000004                  : httpsend.oe66 (.neardata)
                      880fb338    00000004     os.ae66 : efs.oe66 (.neardata)
                      880fb33c    00000004     stk6_ppp_pppoe.ae66 : bind.oe66 (.neardata)
                      880fb340    00000004                         : ipfrag.oe66 (.neardata)
                      880fb344    00000004                         : lli6.oe66 (.neardata)
                      880fb348    00000004                         : mld.oe66 (.neardata)
                      880fb34c    00000004                         : node.oe66 (.neardata)
                      880fb350    00000004                         : pbm.oe66 (.neardata)
                      880fb354    00000004                         : sock6pcb.oe66 (.neardata)
                      880fb358    00000004                         : sockpcb.oe66 (.neardata)
                      880fb35c    00000002     ti.transport.ndk.nimu.ae66 : nimu_eth.obj (.neardata)
                      880fb35e    00000002     --HOLE-- [fill = 0]
                      880fb360    00000001     ti.drv.qmss.ae66 : qmss_drv.oe66 (.neardata)
    
    
    
    .rodata    0    911d946c    00000040     
                      911d946c    00000024     stk6_ppp_pppoe.ae66 : ipv6.oe66 (.rodata)
                      911d9490    00000010     os.ae66 : mem_data.oe66 (.rodata)
                      911d94a0    00000008     stk6_ppp_pppoe.ae66 : pbm_data.oe66 (.rodata)
                      911d94a8    00000004     Test_pe66.oe66 (.rodata)





  • The output sections .bss, .neardata, and .rodata must all be located within 0x8000 bytes of each other.  That is because all those variables are accessed at an offset, limited to 15-bits unsigned, from the DP (B14) register.  This is typically accomplished by putting those three output sections in a GROUP.  Here is more information.

    Thanks and regards,

    -George

  • This linker map fragment shows three very small sections; there's no reason that these three shouldn't fit within the required 15-bit range.  There must be something being placed between them, keeping them too far apart.  Look at the linker map file again; what other sections are being placed in the address range 911cd040 through 911d93f7?

  • Hi Archaeologist,

    My SEGMENT ALLOCATION MAP as follow:

    SEGMENT ALLOCATION MAP
    
    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    00800000    00800000    0004c320   0004c320    rw-
      00800000    00800000    0004c320   0004c320    rw- .localfar
    0084c320    0084c320    00000004   00000004    r--
      0084c320    0084c320    00000004   00000004    r-- .init_array
    0084c324    0084c324    00000004   00000000    rw-
      0084c324    0084c324    00000004   00000000    rw- .tls_tp
    0084c380    0084c380    000065a8   00000000    rw-
      0084c380    0084c380    00004000   00000000    rw- .resmgr_memregion
      00850380    00850380    00001488   00000000    rw- .resmgr_pa
      00851808    00851808    00001000   00000000    rw- .stack
      00852808    00852808    00000120   00000000    rw- .cio
    00852930    00852930    000000a0   00000000    rw-
      00852930    00852930    000000a0   00000000    rw- .resmgr_handles
    0c000000    0c000000    00001370   00001370    rw-
      0c000000    0c000000    00001370   00001370    rw- platform_lib
    0c001380    0c001380    00000318   00000318    rw-
      0c001380    0c001380    00000318   00000318    rw- .nimu_eth_ll2
    0c001700    0c001700    00000200   00000000    rw-
      0c001700    0c001700    00000200   00000000    rw- .cppi
    80000000    80000000    08000000   00000000    rw-
      80000000    80000000    08000000   00000000    rw- ddr_heap
    88000000    88000000    0009b580   0009b580    r-x
      88000000    88000000    0009b580   0009b580    r-x .text
    8809b580    8809b580    00052b00   00000000    rw-
      8809b580    8809b580    00052b00   00000000    rw- .far:NDK_PACKETMEM
    880ee080    880ee080    0000d114   0000d114    r--
      880ee080    880ee080    0000d114   0000d114    r-- .const
    881075f8    881075f8    000004f0   000004f0    r--
      881075f8    881075f8    000004d4   000004d4    r-- .switch
      88107acc    88107acc    0000001c   0000001c    r-- .binit
    88107c00    88107c00    00000200   00000200    r-x
      88107c00    88107c00    00000200   00000200    r-x .vecs
    88108000    88108000    000012c8   000012c8    r-x
      88108000    88108000    000000a0   000000a0    r-x .text:_c_int00
      881080a0    881080a0    00001228   00001228    r-- .cinit
    91000000    91000000    001ccce0   00000000    rw-
      91000000    91000000    001ccce0   00000000    rw- .far
    911ccce0    880fb1a0    00000181   00000181    rw-
      911ccce0    880fb1a0    00000181   00000181    rw- .neardata
    911cce70    880fb330    0000c2c6   0000c2c6    rw-
      911cce70    880fb330    0000c2c6   0000c2c6    rw- .fardata
    911d9138    911d9138    000000d0   00000008    rw-
      911d9138    911d9138    00000008   00000008    rw- .tdata
      911d9140    911d9140    000000c8   00000000    rw- .tbss
    911d9208    911d9208    00000074   00000000    rw-
      911d9208    911d9208    00000074   00000000    rw- .bss
    911d927c    911d927c    00000040   00000040    r--
      911d927c    911d927c    00000040   00000040    r-- .rodata
    911d92bc    911d92bc    00000028   00000028    r--
      911d92bc    911d92bc    00000028   00000028    r-- .TI.tls_init
    a0230000    a0230000    000120ac   00000000    rw-
      a0230000    a0230000    000120ac   00000000    rw- .qmss.1
    a02420b0    a02420b0    00000050   00000050    rw-
      a02420b0    a02420b0    00000050   00000050    rw- gomp_data.1
    a0242100    a0242100    00002400   00000000    rw-
      a0242100    a0242100    00002400   00000000    rw- .qmss.2
    a0244500    a0244500    00000256   00000256    rw-
      a0244500    a0244500    00000256   00000256    rw- gomp_data.2

  • You should not have .fardata between .neardata and .bss; that's what's causing the problem.  Place .neardata, .rodata, and .bss together in a group as George suggests.  You probably need to put .tdata and .tbss in the same group.