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