Re: can linaro toolchain compile ARM earlier than Cortex A8?

2011-03-24 Thread Andrew Stubbs

On 24/03/11 03:09, Michael Hope wrote:

Hi Barry.  GCC can be switched at runtime by supplying -march=* and/or
-mcpu=* flags to the compiler, just as you have done below.  The
'--with-arch=*' lines you see below set what GCC compiles to by
default.


While that is true, but the libraries that come with the compiler are 
probably still inappropriate for older architectures.


The short answer is that, no, the Linaro *binary* releases will not 
support -march=armv5.


However, you can build your own compiler from the Linaro sources, and 
then build the libraries you need to match, and you can have v5 support. 
This is not a straightforward process. :(


If you'd prefer not to build your own tools, may I recommend 
CodeSourcery's Sourcery G++ Lite for ARM GNU/Linux:


   http://www.codesourcery.com/sgpp/lite/arm

That compiler defaults to ARMv5TE. If that's too new, the toolchain also 
contains prebuilt libraries for ARMv4T (-march=armv4t) and those should 
be compatible. Although it is not the Linaro compiler, it is somewhat 
similar, and programs you build should be compatible with Ubuntu. 
(Disclosure: I work for CodeSourcery).


Hope that helps

Andrew

___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain


Re: can linaro toolchain compile ARM earlier than Cortex A8?

2011-03-24 Thread Imre Kaloz

On Thu, 24 Mar 2011 11:36:17 +0100, Andrew Stubbs  
wrote:


The short answer is that, no, the Linaro *binary* releases will not
support -march=armv5.

However, you can build your own compiler from the Linaro sources, and
then build the libraries you need to match, and you can have v5 support.
This is not a straightforward process. :(


You can always use the OpenWrt buildroot to easily build a custom Linaro-based 
crosscompiler, just make sure you select the right libc for your needs (we use 
uClibc by default) and a target similar to yours.


Imre

___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain


Re: can linaro toolchain compile ARM earlier than Cortex A8?

2011-03-24 Thread Andrew Stubbs

On 24/03/11 11:05, Imre Kaloz wrote:

On Thu, 24 Mar 2011 11:36:17 +0100, Andrew Stubbs
 wrote:

However, you can build your own compiler from the Linaro sources, and
then build the libraries you need to match, and you can have v5 support.
This is not a straightforward process. :(


You can always use the OpenWrt buildroot to easily build a custom
Linaro-based crosscompiler, just make sure you select the right libc for
your needs (we use uClibc by default) and a target similar to yours.


Or OpenEmbedded or CrossTool / CrossTool-NG.

Andrew

___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain


[ACTIVITY] March 22-24

2011-03-24 Thread Ira Rosen
Hi,

* resubmitted and committed store sink patch to trunk, I'll commit it
to gcc-linaro-4.6 next week
* submitted autodetection of vector size patch to gcc-patches, I'l
commit it next week
* started testing a patch that makes mvectorize-with-neon-quad the default
* DenBench: found some more cases where vectorization of strided
accesses using vzip/vuzp causes degradation. Since Richard is making a
lot of progress with vlsd/vst, I think it doesn't make sense to spend
too much time on vzip/vuzp, and I am going to run DenBench without
this patch.

Ira

___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain


Re: can linaro toolchain compile ARM earlier than Cortex A8?

2011-03-24 Thread Barry Song
2011/3/24 Andrew Stubbs 
>
> On 24/03/11 11:05, Imre Kaloz wrote:
>>
>> On Thu, 24 Mar 2011 11:36:17 +0100, Andrew Stubbs
>>  wrote:
>>>
>>> However, you can build your own compiler from the Linaro sources, and
>>> then build the libraries you need to match, and you can have v5 support.
>>> This is not a straightforward process. :(
>>
>> You can always use the OpenWrt buildroot to easily build a custom
>> Linaro-based crosscompiler, just make sure you select the right libc for
>> your needs (we use uClibc by default) and a target similar to yours.
>
> Or OpenEmbedded or CrossTool / CrossTool-NG.

Thank all of you! you really help me much!  You toolchain team is really great!

In fact, i knew how to compile a toolchain.  As i said, i have
compiled a toolchain by simple options:
Configured with: ../gcc-linaro-4.4-2011.02-0/
configure
--target=arm-none-linux-gnueabi
--prefix=/home/vmuser/development/toolchain/build-toolchain/tools
--enable-languages=c,c++ --disable-libgomp
Thread model: posix
gcc version 4.4.5 (Linaro GCC 4.4-2011.02-0)

it can make uboot work with arch=armv5.

i want to know whether any performance is lost by my simple configure
options if the toolchain is used to armv7 with vfpv3? GCC documents
show that those options we use to compile gcc will become the default
options of gcc runtime. But what is the real benefit toolchains can
get by configuring gcc with default arch and fpu since we can switch
arch options at runtime?

Is the key glibc? If compiling glibc by gcc with options for a special
ARM arch and float point unit, it will improve the performance of
glibc to the arch? And then the glibc will not support other arch or
SoCs without the specified float point unit?


>
> Andrew
>
> ___
> linaro-toolchain mailing list
> linaro-toolchain@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-toolchain

___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain


[ACTIVITY] March 20-24

2011-03-24 Thread Revital Eres
Hello,

Implemented a patch to apply SMS in the presence of instructions with
REG_INC_NOTE. (this occurs in telecom/autocor thus SMS needs to be run
with -fno-auto-inc-dec
flag to be applied)

Sent a merge request to gcc-linaro for the SMS patches.
Thanks to Andrew Stubbs for his help.
https://code.launchpad.net/~eres/gcc-linaro/SMS_doloop_for_ARM
I intend to send a request to gcc-linaro.4.6 as well.

Thanks,
Revital
___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain


Re: can linaro toolchain compile ARM earlier than Cortex A8?

2011-03-24 Thread Michael Hope
On Fri, Mar 25, 2011 at 2:59 AM, Barry Song <21cn...@gmail.com> wrote:
> 2011/3/24 Andrew Stubbs 
>>
>> On 24/03/11 11:05, Imre Kaloz wrote:
>>>
>>> On Thu, 24 Mar 2011 11:36:17 +0100, Andrew Stubbs
>>>  wrote:

 However, you can build your own compiler from the Linaro sources, and
 then build the libraries you need to match, and you can have v5 support.
 This is not a straightforward process. :(
>>>
>>> You can always use the OpenWrt buildroot to easily build a custom
>>> Linaro-based crosscompiler, just make sure you select the right libc for
>>> your needs (we use uClibc by default) and a target similar to yours.
>>
>> Or OpenEmbedded or CrossTool / CrossTool-NG.
>
> Thank all of you! you really help me much!  You toolchain team is really 
> great!
>
> In fact, i knew how to compile a toolchain.  As i said, i have
> compiled a toolchain by simple options:
> Configured with: ../gcc-linaro-4.4-2011.02-0/
> configure
> --target=arm-none-linux-gnueabi
> --prefix=/home/vmuser/development/toolchain/build-toolchain/tools
> --enable-languages=c,c++ --disable-libgomp
> Thread model: posix
> gcc version 4.4.5 (Linaro GCC 4.4-2011.02-0)
>
> it can make uboot work with arch=armv5.
>
> i want to know whether any performance is lost by my simple configure
> options if the toolchain is used to armv7 with vfpv3? GCC documents
> show that those options we use to compile gcc will become the default
> options of gcc runtime. But what is the real benefit toolchains can
> get by configuring gcc with default arch and fpu since we can switch
> arch options at runtime?
>
> Is the key glibc? If compiling glibc by gcc with options for a special
> ARM arch and float point unit, it will improve the performance of
> glibc to the arch? And then the glibc will not support other arch or
> SoCs without the specified float point unit?

Hi Barry.  The short answer is 'it depends' :)

GCC is more than a compiler and includes other things such as a
runtime library (libgcc) and hooks into the libc for features like
thread local storage.  These are built for the architecture and
floating point unit options you pass to GCC's configure, so if you
want one toolchain that runs everywhere then you need to configure it
for the lowest common denominator (normally a ARMv5T in ARM mode with
no FPU).  A similar argument applies to GLIBC.

The next question is, does this matter for your application?  What
workload will your product run and will it be meaningfully affected by
this lowest common denominator build?
 * If your application uses a lot of floating point, then the lack of
FPU support in GLIBC matters
 * If your product has limited memory, then the smaller code size of
Thumb-2 is worthwhile
 * If you need to squeeze out another 5 % in performance, then using
ARMv7 instead of ARMv5 will help

There are other technical solutions such as:
 * Building libgcc and glibc for the different variants and picking
the best at link time
 * Building them and picking at dynamic link time using hwcaps or similar

These make sense for a generic binary toolchain such as the
CodeSourcery one Andrew mentioned, and for generic distributions such
as Ubuntu but not for a focused end user product.

-- Michael

___
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain