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);
}
|