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

Binghoo Dang dangbinghoo at gmail.com
Mon Jan 5 05:10:38 PST 2009


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
> Clfs-support at lists.cross-lfs.org
> 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!



More information about the Clfs-support mailing list