This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: building arm native toolchain using crosstools


On Tuesday 16 January 2007 163, Ram wrote:
> Hi,
>     My combinations is gcc 3.4.4. bin utils - 2.15 glibc2.3.5
>    I have 3 questions
>     1) I dont know if i need to use soft-float option or not - my board
>         has a VFP.
>         Should i use soft-float option or not?.

I'm not used to using VFP, but pure soft-float. Recent GCCs have a -mfpu switch
which should do the trick. Configure gcc with :
GCC_EXTRA_CONFIG=--with-float=hard
and
TARGET_CFLAGS="-mhard-float -mfpu=vfp"

Adapt to your other needs.

>    3) compilers that i have build does not have code for arm v6 architecture.
>        how do i build gcc to generate code for armv6.
>        (I did use -march=armv6 - it says its invalid switch).

gcc-3.4.4 does not have -march=armv6. Do "man gcc", look at "ARM Options".
Extract:
--8<--
       -mcpu=name
           This specifies the name of the target ARM processor.  GCC uses this
           name to determine what kind of instructions it can emit when gener-
           ating assembly code.  Permissible names are: arm2, arm250, arm3,
           arm6, arm60, arm600, arm610, arm620, arm7, arm7m, arm7d, arm7dm,
           arm7di, arm7dmi, arm70, arm700, arm700i, arm710, arm710c, arm7100,
           arm7500, arm7500fe, arm7tdmi, arm8, strongarm, strongarm110, stron-
           garm1100, arm8, arm810, arm9, arm9e, arm920, arm920t, arm926ejs,
           arm940t, arm9tdmi, arm10tdmi, arm1020t, arm1026ejs, arm1136js,
           arm1136jfs ,xscale, iwmmxt, ep9312.

       -mtune=name
           This option is very similar to the -mcpu= option, except that
           instead of specifying the actual target processor type, and hence
           restricting which instructions can be used, it specifies that GCC
           should tune the performance of the code as if the target were of
           the type specified in this option, but still choosing the instruc-
           tions that it will generate based on the cpu specified by a -mcpu=
           option.  For some ARM implementations better performance can be
           obtained by using this option.

       -march=name
           This specifies the name of the target ARM architecture.  GCC uses
           this name to determine what kind of instructions it can emit when
           generating assembly code.  This option can be used in conjunction
           with or instead of the -mcpu= option.  Permissible names are:
           armv2, armv2a, armv3, armv3m, armv4, armv4t, armv5, armv5t,
           armv5te, armv6j, iwmmxt, ep9312.
--8<--

Again, you may try a more recent GCC, or fall back to any other supported
configuration (eg. -march=armv6j or -march=armv5).

gcc-4.1.1 does support armv6. YMMV with earlier version than gcc-4.1.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software  Designer | \ / CAMPAIGN     |   ^                |
| --==< °_° >==-- °------------.-------:  X  AGAINST      |  /e\  There is no  |
| http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL    |  """  conspiracy.  |
°------------------------------°-------°------------------°--------------------°


--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]