Re: Problem with linking static lib text into specific section

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When I add the new lib the ld file has these changes


#define SECTION_text(_region_, _vma_, _lma_)   \
  .text _vma_ : _lma_                          \
    {                                          \
      _stext = .; _ftext = . ;                 \
     *(EXCLUDE_FILE (*libMy-Cli.a) .text)    \
     *(EXCLUDE_FILE (*libMy-Cli.a) .text.*)  \
     *(EXCLUDE_FILE (*libMy-ATP-GUI.a) .text)    \     --- New LIB
     *(EXCLUDE_FILE (*libMy-ATP-GUI.a) .text.*)  \     --- New LIB
      *(.stub)                                 \
      *(.gnu.warning)                          \
      *(.gnu.linkonce.t*)                      \
      *(.mips16.fn.*) *(.mips16.call.*)        \
    } > _region_ =0                            \
  _etext = .; PROVIDE (etext = .);

#define SECTION_rodata(_region_, _vma_, _lma_)      \
  .rodata _vma_ : _lma_                             \
    {                                               \
      FORCE_OUTPUT; 								\
     *(EXCLUDE_FILE (*libMy-Cli.a) .rodata)   	\
     *(EXCLUDE_FILE (*libMy-Cli.a) .rodata.*) 	\
     *(EXCLUDE_FILE (*libMy-ATP-GUI.a) .rodata)   	\ --- New LIB
     *(EXCLUDE_FILE (*libMy-ATP-GUI.a) .rodata.*) 	\ --- New LIB
      *(.gnu.linkonce.r*)    						\
    } > _region_

/* those linker changes are for Flash section */
#define SECTION_statLib_text(_region_, _vma_, _lma_)    \
	.statLib_text _vma_ : _lma_               	  	    \
    {                                                   \
    	FORCE_OUTPUT;									\
    	KEEP(*( SORT (.ecos.cli.table.*)));				\
        libMy-Cli.a (.text)                           \
        libMy-Cli.a *(.text.*)                        \
        libMy-Cli.a (.rodata)                         \
        libMy-Cli.a *(.rodata.*)                      \
        libMy-ATP-GUI.a (.text)                           \   --- New LIB
        libMy-ATP-GUI.a *(.text.*)                        \   --- New LIB
        libMy-ATP-GUI.a (.rodata)                         \  --- New LIB
        libMy-ATP-GUI.a *(.rodata.*)                      \  --- New LIB
    } > _region_


I get the following error::::
/localhome/eCos/gnutools/mipsisa32-elf/bin/../lib/gcc/mipsisa32-elf/4.3.2/../../../../mipsisa32-elf/bin/ld:
address 0x80058264 of mars section .bss is not within region ram
/localhome/eCos/gnutools/mipsisa32-elf/bin/../lib/gcc/mipsisa32-elf/4.3.2/../../../../mipsisa32-elf/bin/ld:
address 0x80058264 of mars section .bss is not within region ram
collect2: ld returned 1 exit status
make: *** [mars] Error 1

**** NOTE ****
When I increase the size of the "ram" region it all goes well.
It Looks like that when I add the new Lib in the ld file it totally
ignores the sections of the both libs
and links them into the ram region and not into the specified section
that i have defined.
The only output that I see in my section is from
KEEP(*( SORT (.ecos.cli.table.*)));

command


Thanks

Elad



On Mon, Mar 5, 2012 at 7:01 AM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote:
>
> Elad Yosef <elad.yosef@xxxxxxxxx> writes:
>
> > Hi I have the following in my linker script:
> >
> > I'm forcing to link the text and the rodata from libMy-Cli.a into a
> > specific section.
> > Now I have additional file libMy-GUI.a that I also want to link in similar way.
> > But It fails I get linking error that some addresses are out of the memory.
> > Is there more elegant way to what i'm trying to achieve?
>
> What is the exact error message?
>
> This general approach should work.
>
> Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux