[U-Boot] Compiling the latest u-boot-2009.06 with Cross-2.95, and errors came out

Hi there,
I met several compiling errors as below:
make -C cpu/arm920t/at91rm9200/ make[1]: Entering directory `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' arm-linux-gcc: lowlevel_init.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: bcm5221.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: dm9161.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: ether.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: i2c.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: interrupts.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: lxt972.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: usb.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: spi.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' make[1]: *** No rule to make target `.depend', needed by `all'. Stop. make[1]: Leaving directory `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' make: *** [cpu/arm920t/at91rm9200/libat91rm9200.a] Error 2
Is that possibly because of the version of the cross compiler?? and should I raise it to cross 3.2 or higher to solve this problem??
Regards, Johnson Yu
___________________________________________________________ Try the all-new Yahoo! Mail. "The New Version is radically easier to use" The Wall Street Journal http://uk.docs.yahoo.com/nowyoucan.html

and errors came out MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_326728_8299199.1246015197971" X-Originating-IP: [221.237.65.45] X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT2_snapshot build 090513(7592.2351.2332) Copyright (c) 2002-2009 www.mailtech.cn 163com
------=_Part_326728_8299199.1246015197971 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
maybe you do not add these files in you makefile because of you have not de= fine useful macros in you .h which is in ./include/config dir.
=E5=9C=A82009-06-26=EF=BC=8C"Johnson Yu" johnson.yn83@yahoo.co.uk =E5=86= =99=E9=81=93=EF=BC=9A
Hi there,
I met several compiling errors as below:
make -C cpu/arm920t/at91rm9200/ make[1]: Entering directory=20 `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' arm-linux-gcc: lowlevel_init.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: bcm5221.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: dm9161.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: ether.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: i2c.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: interrupts.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: lxt972.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: usb.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: spi.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' make[1]: *** No rule to make target `.depend', needed by `all'. Stop. make[1]: Leaving directory=20 `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' make: *** [cpu/arm920t/at91rm9200/libat91rm9200.a] Error 2
Is that possibly because of the version of the cross compiler?? and=20 should I raise it to cross 3.2 or higher to solve this problem??
Regards, Johnson Yu
=09=09 ___________________________________________________________=20 Try the all-new Yahoo! Mail. "The New Version is radically easier to use" = =C2=96 The Wall Street Journal=20 http://uk.docs.yahoo.com/nowyoucan.html
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
------=_Part_326728_8299199.1246015197971 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
maybe you do not add these files in you makefile because of you have not de= fine useful macros in you <board_name>.h which is in ./include/config dir.<= br><br><br>=E5=9C=A82009-06-26=EF=BC=8C"Johnson Yu" <johnson.yn83@yahoo.= co.uk> =E5=86=99=E9=81=93=EF=BC=9A<br> <BLOCKQUOTE id=3D"isReplyContent"= style=3D"PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1= px solid"><PRE>Hi there,
I met several compiling errors as below:
make -C cpu/arm920t/at91rm9200/ make[1]: Entering directory=20 `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' arm-linux-gcc: lowlevel_init.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: bcm5221.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: dm9161.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: ether.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: i2c.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: interrupts.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: lxt972.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: usb.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' arm-linux-gcc: spi.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ' make[1]: *** No rule to make target `.depend', needed by `all'. Stop. make[1]: Leaving directory=20 `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' make: *** [cpu/arm920t/at91rm9200/libat91rm9200.a] Error 2
Is that possibly because of the version of the cross compiler?? and=20 should I raise it to cross 3.2 or higher to solve this problem??
Regards, Johnson Yu
=09=09 ___________________________________________________________=20 Try the all-new Yahoo! Mail. "The New Version is radically easier to use" = =C2=96 The Wall Street Journal=20 http://uk.docs.yahoo.com/nowyoucan.html
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot </PRE></BLOCKQUOTE></board_name><br><!-- footer --><br><span title=3D"netea= sefooter"/><hr/> <a href=3D"http://count.mail.163.com/redirect/footer.htm?f=3Dhttp://gouwu.y= oudao.com">200=E4=B8=87=E7=A7=8D=E5=95=86=E5=93=81,=E6=9C=80=E4=BD=8E=E4=BB= =B7=E6=A0=BC,=E7=96=AF=E7=8B=82=E8=AF=B1=E6=83=91=E4=BD=A0</a> </span> ------=_Part_326728_8299199.1246015197971--

Hi Johnson Y,
I met several compiling errors as below:
make -C cpu/arm920t/at91rm9200/ make[1]: Entering directory `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' arm-linux-gcc: lowlevel_init.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ'
[...]
Is that possibly because of the version of the cross compiler?? and should I raise it to cross 3.2 or higher to solve this problem??
The error message is clear - the U-Boot build uses an option which your compiler does not understand. You have two ways of fixing this
1) upgrade your toolchain to a compiler understanding -MQ 2) "downgrade" the U-Boot buildprocess for your toolchain
I advise 1) as 2) invests time into something you will need to abandon sometime anyhow.
Cheers Detlev

Hi Detlev Z,
Thanks for your suggestions, and after I upgraded the toolchain to v3.2, those problems went away.
However, new errors turned up as expected:
1) the invocations of U_BOOT_CMD in several .c files, common/cmd_bootm.c line 923, common/cmd_source.c line 232, common/cmd_ximg.c line 186 terminated the make process for the "unterminated argument list invoking macro "U_BOOT_CMD" ", known as the "parse error". So, I set the last argument of U_BOOT_CMD marco to NULL, and then make went silent.
2) this error came at the linking stage:
"arm-linux-ld:/home/johnson-yn/GEARI/u-boot-2009.06/board/atmel/at91rm9200dk/u-boot.lds:40: parse error make: *** [u-boot] Error 1"
and the line 40 of u-boot.lds is :
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
how should I solve this?
If I just don't need use NAND flash module in u-boot, what are the steps I should take??
Regards,
Johnson Yu
Detlev Zundel wrote:
Hi Johnson Y,
I met several compiling errors as below:
make -C cpu/arm920t/at91rm9200/ make[1]: Entering directory `/home/johnson-yn/GEARI/u-boot-2009.06/cpu/arm920t/at91rm9200' arm-linux-gcc: lowlevel_init.o: No such file or directory arm-linux-gcc: unrecognized option `-MQ'
[...]
Is that possibly because of the version of the cross compiler?? and should I raise it to cross 3.2 or higher to solve this problem??
The error message is clear - the U-Boot build uses an option which your compiler does not understand. You have two ways of fixing this
- upgrade your toolchain to a compiler understanding -MQ
- "downgrade" the U-Boot buildprocess for your toolchain
I advise 1) as 2) invests time into something you will need to abandon sometime anyhow.
Cheers Detlev
___________________________________________________________ Try the all-new Yahoo! Mail. "The New Version is radically easier to use" The Wall Street Journal http://uk.docs.yahoo.com/nowyoucan.html

Hi Johnson Yu,
Hi Detlev Z,
Thanks for your suggestions, and after I upgraded the toolchain to v3.2, those problems went away.
Why did you upgrade only to 3.2? We are currently using gcc-4.2.2. You are welcome to download ELDK 4.2 for arm[1] and give it a try.
However, new errors turned up as expected:
You expected new errors? Uh uh, I was hoping for them to go away ;)
- the invocations of U_BOOT_CMD in several .c files,
common/cmd_bootm.c line 923, common/cmd_source.c line 232, common/cmd_ximg.c line 186 terminated the make process for the "unterminated argument list invoking macro "U_BOOT_CMD" ", known as the "parse error". So, I set the last argument of U_BOOT_CMD marco to NULL, and then make went silent.
I don't understand this. include/common.h defines U_BOOT_CMD to take 6 parameters. Your example common/cmd_boot.c also provides 6 parameters:
U_BOOT_CMD( bootm, CONFIG_SYS_MAXARGS, 1, do_bootm, "boot application image from memory", "[addr [arg ...]]\n - boot application image stored in memory\n" "\tpassing arguments 'arg ...'; when booting a Linux kernel,\n" ...... [more concatenations below this point]
So I count 4 parameters on the first line, 1 parameter on the next and the 6th parameter is the long list of concatenated strings.
Why should you need to add another parameter here?
- this error came at the linking stage:
"arm-linux-ld:/home/johnson-yn/GEARI/u-boot-2009.06/board/atmel/at91rm9200dk/u-boot.lds:40: parse error make: *** [u-boot] Error 1"
and the line 40 of u-boot.lds is :
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
how should I solve this?
The easiest way would be to upgrade to a _recent_ toolchain (i.e. >4). On the other hand, the line you mention was added in this commit:
http://git.denx.de/?p=u-boot.git;a=commit;h=f62fb99941c625605aa16a0097b396a5...
If you check the commit msg, you get an idea of how you may "unwind" this optimization.
However, why invest time, if a recent toolchain "just works"?
If I just don't need use NAND flash module in u-boot, what are the steps I should take??
It should be enough to #undef CONFIG_CMD_NAND in the config file.
Cheers Detlev
[1] http://www.denx.de/wiki/view/DULG/ELDKDownload?stickboard=qong
participants (3)
-
Detlev Zundel
-
Johnson Yu
-
null