[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