[Clfs-support] First try with CLFS embedded for ARM - first comments

Andreas Weiß andreas at weissprivat.de
Mon Jan 5 04:00:46 PST 2009


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




More information about the Clfs-support mailing list