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