Re: error in crosscompiling autoboot for MIPS

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

 



On Fri, Jul 06, 2007 at 11:27:18AM +0200, Manuel Lauss wrote:
> On Fri, Jul 06, 2007 at 10:05:41AM +0100, saravanan wrote:
> > hi,
> >  
> >  i download(au1xxx-booter-src-1.0-r000007.tar.gz ) an tried to cross compile for MIPS DBAU1200 board, but was nto succesfull. i used to toolchain created using buildroot. the following is the error message i got:
> >  
> >  Building /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/sd.o
> >       Building /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/booter.o
> >       Building /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/DB1200_booter.rec
> >  /home/LINUXAU1200/oldbuildroot/secondbuild/buildroot/build_mipsel/staging_dir/bin/mipsel-linux-uclibc-ld: section .data [000000009fd08778 -> 000000009fd08807] overlaps section .MIPS.stubs [000000009fd08778 -> 000000009fd08787]
> >  /home/LINUXAU1200/oldbuildroot/secondbuild/buildroot/build_mipsel/staging_dir/bin/mipsel-linux-uclibc-ld: /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/DB1200_booter.rec.elf: The first section in the PT_DYNAMIC segment is not the .dynamic section
> >  /home/LINUXAU1200/oldbuildroot/secondbuild/buildroot/build_mipsel/staging_dir/bin/mipsel-linux-uclibc-ld: final link failed: Bad value
> >  make[3]: *** [/home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/DB1200_booter.rec] Error 1
> >  rm /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/fat.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/flash.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/booter.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/partition.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/filesystem.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/sd.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/srec.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/bin.o
> >  /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/elf.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/util.o /home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter/obj/DB1200/EL/booter/functions.o
> >  make[3]: Leaving directory `/home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications/booter'
> >  make[2]: *** [all] Error 2
> >  make[2]: Leaving directory `/home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07/applications'
> >  make[1]: *** [apps] Error 2
> >  make[1]: Leaving directory `/home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07'
> >  make: *** [all] Error 2
> >  linux:/home/LINUXAU1200/autobootloader/Booter_Common_Au1xxx_00.00.07 # ..
> >  linux:/home/LINUXAU1200/autobootloader #
> >  
> >  
> >  i think there is memory range overlapping between the two sections.
> >  
> >  can anyone suggest me any solution or suggestion for this ?
> 
> That codebase can _only_ be compiled with AMD's gcc-3.4.3 for cygwin (can be
> found on the CD you get with the DB1200 board). It does not work with any
> other toolchain, unfortunately (yes, I tried a few, from 3.3.0 to 4.1.2
> with binutils from 2.15 to 2.17)

Please disregard the above and try this updated linkscript
(applications/booter/booter.ld). With this the booter source
builds fine here:

<<< -- snip -- >>>

INPUT(-lau1x00)

OUTPUT_ARCH(mips)

ENTRY(start)

/**** Start point ****/

SECTIONS
{
  .text 0x9FD00000 :
  {
  	*(.init)
    *(.text)
    _ecode = ABSOLUTE(.) ;	/* End of code 			    */
	
	*(.rodata)
	*(.rodata.str1.4)
	*(.rodata.cst8)
	*(.rodata.cst4)

     . = ALIGN(8);
    _etext = ABSOLUTE(.);	/* End of code and read-only data   */
  }

  /**** Initialised data ****/
  .data 0x81000000 :
	 AT ( ADDR(.text) + SIZEOF(.text) )
  {
    _data = ABSOLUTE(.);	/* Start of initialised data	    */
    _data_actual = ADDR(.text) + SIZEOF(.text);	/* Actual location of data segment */

    *(.data)
	*(.data.rel.local)
	*(.data.rel.ro.local)
	*(.data.rel)
	
	. = ALIGN(8);

    _gp = ABSOLUTE(. + 0x7ff0); /* point at middle (32Kbytes) of 64Kbyte initialized data		    */

    *(.lit8)
    *(.lit4)
    *(.sdata)

    . = ALIGN(8);

    _edata  = ABSOLUTE(.);	/* End of initialised data	    */
  }

  /**** Uninitialised data ****/

  _fbss = .;			/* Start of unitialised data	    */

  .sbss :
  {
    *(.sbss)
    *(.scommon)
  }
  .bss :
  {
    *(.bss)
    *(COMMON)
  }

  _end = . ;		/* End of unitialised data	    */

  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }

  /DISCARD/ :
  {
    *(.reginfo)
  }

  PROVIDE(etext = _etext);
  PROVIDE (edata = .);
  PROVIDE (end = .);
/*  PROVIDE (__stacktop = 0x80100000);*/
  PROVIDE (__stacktop = _end + 0x010000);
}




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux