Andreas Weiß 写道:
Hello together,

I did my first steps with the CLFS-Embedded for the arm architecture.
First of all - you did a great work. I tried earlier to setup a cross compiler and found no possibility to setup the compile process for the library.

Now my comments on the CLFS embedded for the ARM architecture:
When building the cross compiler toolchain on an AMD Athlon X2 running with Ubuntu 8.10 64 bit I found some problems - partly concerning the default installation of the Ubuntu system, partly concerning the compilation process itself.

I used the book version SVN-0.0.1-20081203-arm.

What I found:

In the default Ubuntu installation these packages need to be installed - otherwise there are some strange error messages during the compile process:
bison, texinfo (because of makeinfo), gmp, mpfr
Some of the error messages do not give a hint which packet ist missing :-)

During the buil process I've got the error message that the -m32 which is mentioned in chapter 6.3. ABI Variables is not accepted by the gcc for ARM. Instead of this there are several posibilities - I've coosen:
export BUILD="-mabi=aapcs-linux"
Maybe someone has a hint for me which of the possibilities is the one to use best?

I also found a problem in the compile process of the binutils:
*********************************************************************
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.19/gas -I. -I. -I../../binutils-2.19/gas -I../bfd -I../../binutils-2.19/gas/config -I../../binutils-2.19/gas/../include -I../../binutils-2.19/gas/.. -I../../binutils-2.19/gas/../bfd -DLOCALEDIR="\"/home/andreas/lfs/arm-v5/root-dir/cross-tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror -g -O2 -c ../../binutils-2.19/gas/config/tc-arm.c
cc1: warnings being treated as errors
../../binutils-2.19/gas/config/tc-arm.c: In function 's_arm_unwind_save_mmxwr': ../../binutils-2.19/gas/config/tc-arm.c:3459: error: format not a string literal and no format arguments ../../binutils-2.19/gas/config/tc-arm.c:3473: error: format not a string literal and no format arguments ../../binutils-2.19/gas/config/tc-arm.c: In function 's_arm_unwind_save_mmxwcg': ../../binutils-2.19/gas/config/tc-arm.c:3591: error: format not a string literal and no format arguments ../../binutils-2.19/gas/config/tc-arm.c:3606: error: format not a string literal and no format arguments ../../binutils-2.19/gas/config/tc-arm.c: In function 's_arm_unwind_movsp': ../../binutils-2.19/gas/config/tc-arm.c:3712: error: format not a string literal and no format arguments
make[4]: *** [tc-arm.o] Error 1
*********************************************************************
after a small change compilation works - see the following diff of binutils-2.19/gas/config/tc-arm.c

I have not enough experience to clean this, so I just took the messages from the array reg_expected_msgs[] which is defined at the top of the file and added a hint that it was me who did this change :-) Additionally I left the original lines as comment in the code so that it is no problem to go back.
*********************************************************************
3459c3459,3460
< as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR]));
---
> /* as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR])); */
> as_bad (_("white: iWMMXt data register expected"));
3473c3474,3475
< as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR]));
---
> /* as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR])); */
> as_bad (_("white: iWMMXt data register expected"));
3591c3593,3594
< as_bad (_(reg_expected_msgs[REG_TYPE_MMXWCG]));
---
> /* as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR])); */
> as_bad (_("white: iWMMXt data register expected"));
3606c3609,3610
< as_bad (_(reg_expected_msgs[REG_TYPE_MMXWCG]));
---
> /* as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR])); */
> as_bad (_("white: iWMMXt data register expected"));
3712c3716,3717
< as_bad (_(reg_expected_msgs[REG_TYPE_RN]));
---
> /* as_bad (_(reg_expected_msgs[REG_TYPE_RN])); */
> as_bad (_("white: ARM register expected"));
*********************************************************************

Last thing I want to comment is that one parameter for the configuration of uClib is missing - the command
make oldconfig
which is mentioned in chapter 6.8. uClibc-0.9.30-rc3 asked for it. I choosed the default option (No) for this but I did not note the parameter.

Maybe these hints are useful for someone :-)

Now I think I have a working cross compiler for the ARM architecture.
I will go ahead in the LFS book now :-)

Greetings
Andreas Weiss

_______________________________________________
Clfs-support mailing list
[email protected]
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
Congratulations! Yeah, there's always a missing in the CLFS book for ARM, actually no one tested that. The uClibc have a kernel style build system just pass make "CROSS_COMPILE=${CLFS_TARGET}- xxx_configtarget" ,but the book maintainer would not consider this , maybe edit the config text is more "from scratch",but there's always a mistake.

Your comments would be helpful for the starter.

Thank you!

Regards!
_______________________________________________
Clfs-support mailing list
[email protected]
http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org

Reply via email to