Skip to contentSkip to conversation

question about example/standalone/mips.lds

U-Boot Xiangfu Liu(刘向富) 3 participants 7 messages Jul 19, 2010 – Jul 21, 2010

lore
Share & tools
lore
#0 lore raw

Hi all

in this file :" example/standalone/mips.lds "
it indicate compile example as BIG mips. but my device is LITTLE mips.
so I simply comment this line[1]. I found other boards compile fine. without any error.

do I must compile this example?
is that ok to comment this line?
or what I need to to ?

thanks.

[1]
OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")

Signature · 3 lines
Best Regards
Xiangfu Liu
http://www.openmobilefree.net
#1 lore raw

Dear =?UTF-8?B?IlhpYW5nZnUgTGl1KOWImOWQkeWvjCki?=,

Quoted 8 lines · In message <[email protected]> you wrote:

in this file :" example/standalone/mips.lds "
it indicate compile example as BIG mips. but my device is LITTLE mips.
so I simply comment this line[1]. I found other boards compile fine. without any error.

do I must compile this example?
is that ok to comment this line?
or what I need to to ?

All MIPS boards in mainline build fine without such a change - both the BE and the LE ones.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I'm what passes for a Unix guru in my office. This is  a  frightening
concept. - Lee Ann Goldstein, in <[email protected]>
#2 lore raw

Hi

which compiler in ELDK if for the mips_el system? I guess there are some different between ELDK cross compiler and OpenWrt cross compiler.
so I want try ELDK cross compiler with my board.

I found there are two mips_el boards[1] in MAKEALL. I want know how those two boards handle this example.

give me some advice. ( I am learning :)

by the way, here[2] is the error message with OpenWrt's cross compiler.

thanks for all your help.

---
[1]

	dbau1550_el	\
	pb1000		\

make -C examples/standalone all
make[1]: Entering directory `/home/xiangfu/workspace/PanGu/u-boot.upstream/examples/standalone'

mipsel-openwrt-linux-ld -g -Ttext 0x80200000 -T mips.lds \
			-o hello_world -e hello_world hello_world.o libstubs.a \
			-L/home/xiangfu/workspace/PanGu/openwrt-xburst/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3 -lgcc

mipsel-openwrt-linux-ld: hello_world.o: compiled for a little endian system and target is big endian
mipsel-openwrt-linux-ld: hello_world.o: endianness incompatible with that of the selected emulation
mipsel-openwrt-linux-ld: failed to merge target specific data of file hello_world.o
mipsel-openwrt-linux-ld: libstubs.a(stubs.o): compiled for a little endian system and target is big endian
mipsel-openwrt-linux-ld: libstubs.a(stubs.o): endianness incompatible with that of the selected emulation
mipsel-openwrt-linux-ld: failed to merge target specific data of file libstubs.a(stubs.o) make[1]: *** [hello_world] Segmentation fault
make[1]: *** Deleting file `hello_world'
make[1]: Leaving directory `/home/xiangfu/workspace/PanGu/u-boot.upstream/examples/standalone'
make: *** [examples/standalone] Error 2

Quoted 17 lines · Wolfgang Denk
Quoted 8 lines · In message<[email protected]> you wrote:

in this file :" example/standalone/mips.lds "
it indicate compile example as BIG mips. but my device is LITTLE mips.
so I simply comment this line[1]. I found other boards compile fine. without any error.

do I must compile this example?
is that ok to comment this line?
or what I need to to ?

All MIPS boards in mainline build fine without such a change - both the BE and the LE ones.

Best regards,

Wolfgang Denk

Signature · 3 lines
Best Regards
Xiangfu Liu
http://www.openmobilefree.net
#3 lore raw

Dear Xiangfu Liu,

Quoted 2 lines · In message <[email protected]> you wrote:

which compiler in ELDK if for the mips_el system?

GCC, of course :-)

Quoted 3 lines

I guess there are some different between ELDK cross compiler and OpenWrt cross compiler.
so I want try ELDK cross compiler with my board.

You can download the installation image at ftp://ftp.denx.de/pub/eldk/4.1/mips-linux-x86/iso/mips-2007-01-21.iso

Quoted 2 lines

by the way, here[2] is the error message with OpenWrt's cross compiler.

...

Quoted 4 lines
mipsel-openwrt-linux-ld -g -Ttext 0x80200000 -T mips.lds \
			-o hello_world -e hello_world hello_world.o libstubs.a \
			-L/home/xiangfu/workspace/PanGu/openwrt-xburst/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3 -lgcc

mipsel-openwrt-linux-ld: hello_world.o: compiled for a little endian system and target is big endian

Well, the "el" in "mipsel-..." mean "Endianess Little".

You cannot use these tools to build code for a BE system.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Those who do not  understand  Unix  are  condemned  to  reinvent  it,
poorly.              - Henry Spencer, University of Toronto Unix hack
#4 lore raw

Hi

sorry I misunderstand something. I download the ppc-2008-04-01.iso and run "./MAKEALL" without any argument. that why it compile 300+ boards. I should read MAKEALL more carefully.

now I am downloading "mips-2007-01-21.iso".

my board is mips EL system.
is that mean when I run "MAKEALL" I just need add mips_el?? like this one[1]

another question:
I found this in "MAKEALL":

LIST_au1xx0_el="        \
         dbau1550_el     \
         pb1000          \

"
it shows that those two boards are Endianess Little System but in board/pb1x00/u-boot.lds , board/dbau1x00/u-boot.lds line:27[2] show that those two boards are both BE system?
is there something wrong or I misunderstand something

thanks for all your reply.

[2]
OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")

[1]
CROSS_COMPILE=mipsel-openwrt-linux- BUILD_DIR=../u-boot-build MAKEALL_LOGDIR=../u-boot-log ./MAKEALL mips_el

Quoted 31 lines · Wolfgang Denk

Dear Xiangfu Liu,

Quoted 2 lines · In message<[email protected]> you wrote:

which compiler in ELDK if for the mips_el system?

GCC, of course :-)

Quoted 3 lines

I guess there are some different between ELDK cross compiler and OpenWrt cross compiler.
so I want try ELDK cross compiler with my board.

You can download the installation image at ftp://ftp.denx.de/pub/eldk/4.1/mips-linux-x86/iso/mips-2007-01-21.iso

Quoted 2 lines

by the way, here[2] is the error message with OpenWrt's cross compiler.

...

Quoted 4 lines
mipsel-openwrt-linux-ld -g -Ttext 0x80200000 -T mips.lds \
			-o hello_world -e hello_world hello_world.o libstubs.a \
			-L/home/xiangfu/workspace/PanGu/openwrt-xburst/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3 -lgcc

mipsel-openwrt-linux-ld: hello_world.o: compiled for a little endian system and target is big endian

Well, the "el" in "mipsel-..." mean "Endianess Little".

You cannot use these tools to build code for a BE system.

Best regards,

Wolfgang Denk

Signature · 3 lines
Best Regards
Xiangfu Liu
http://www.openmobilefree.net
#5 lore raw
In reply to Wolfgang Denk
Quoted 18 lines · Wolfgang Denk

Dear Xiangfu Liu,

Quoted 2 lines · In message <[email protected]> you wrote:

which compiler in ELDK if for the mips_el system?

GCC, of course :-)

Quoted 3 lines

I guess there are some different between ELDK cross compiler and OpenWrt cross compiler.
so I want try ELDK cross compiler with my board.

You can download the installation image at ftp://ftp.denx.de/pub/eldk/4.1/mips-linux-x86/iso/mips-2007-01-21.iso

Quoted 2 lines

by the way, here[2] is the error message with OpenWrt's cross compiler.

...

Quoted 9 lines
Quoted 4 lines

mipsel-openwrt-linux-ld -g -Ttext 0x80200000 -T mips.lds \
? ? ? ? ? ? ? ? ? ? ? -o hello_world -e hello_world hello_world.o libstubs.a \
? ? ? ? ? ? ? ? ? ? ? -L/home/xiangfu/workspace/PanGu/openwrt-xburst/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/gcc/mipsel-openwrt-linux-uclibc/4.3.3 -lgcc
mipsel-openwrt-linux-ld: hello_world.o: compiled for a little endian system and target is big endian

Well, the "el" in "mipsel-..." mean "Endianess Little".

You cannot use these tools to build code for a BE system.

No matter the compiler, I believe the lines in the linker scripts are wrong (this is repeated all through the mips linker files in u-boot). OUTPUT_FORMAT for mips is supposed to tell the linker what bfd output format to generate given a link command of unspecifed(default), big, and little endian formats.

The lines in the linker script say for a little endian command line the output format is big endian, so I think the OP's toolchain did what is expected - it made a big endian object file.

http://sources.redhat.com/binutils/docs-2.12/ld.info/Format-Commands.html

#6 lore raw

Hi Andrew

thanks for the link. I think we should add $(ENDIANNESS) when link the hello_world.o.

I will send one patch in next email.

thanks again for the document.

Quoted 11 lines · Andrew Dyer

No matter the compiler, I believe the lines in the linker scripts are wrong (this is repeated all through the mips linker files in u-boot). OUTPUT_FORMAT for mips is supposed to tell the linker what bfd output format to generate given a link command of unspecifed(default), big, and little endian formats.

The lines in the linker script say for a little endian command line the output format is big endian, so I think the OP's toolchain did what is expected - it made a big endian object file.

http://sources.redhat.com/binutils/docs-2.12/ld.info/Format-Commands.html

Signature · 3 lines
Best Regards
Xiangfu Liu
http://www.openmobilefree.net