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: crosstool-ng: cross compiler for -mach=arm4vt (Cirrus Logic EP93xx target)


On Wednesday, September 09, 2009 4:01 AM, Martin Guy wrote:
>>>     (maverick) Use specific FPU
>>>     Floating point: ---> hardware (FPU)
>
> Don't do that! :) Mainline GCC's code generation for Maverick is
> completely broken, glibc needs patches, binutils barfs on some GCC
> output for C++, and the FPU itself is full of hardware timing bugs
> that GCC fails miserably to work around.
> I have a set of working GCC patches for C, and OE have collected the
> glibc and binutils patches but I've never heard of anyone getting a
> fully working rootfs yet.

OK.  I removed the "maverick" setting and set the Floating point to
software.

>>> NB: do not enable EABI, I think it requires at least armv5t, but I'm
>>>     not sure. So stay on the safe side, and stick with OABI.
>
> EABI requires armv4t. The only thing v5t has at an ISA level is an
> extra instruction, count leading zeros, which is used in glibc's asm
> division routine ifdef armv5t. armv4t would have been a better GCC
> default.

I agree.  Would have made my life easier with the CodeSourcery toolchain. ;-)

> I think we can safely ditch OABI these days, unless you have an armv4
> (the StrongARM) or armv3. It has no technical advantages, and most
> programs that had bugs needing fixing have now been fixed. There are a
> few stragglers: gnat ADA, clisp common lisp, fpc free pascal compiler
> and any version of GCC <4.1.0
> 
>> I used arm920t instead of ep9312 but I believe ep9312 is just an alias.
> for arm920t, yes. It also passes "armv4t+maverick" to the assembler so
> that maverick insns are not rejected by the assembler. (cpu=arm920t
> fpu=maverick makes the assembler barf. Yes, this is a mess!)

So with "arm920t" does the assembler work ok for the ep93xx or should it
be "ep9312"?

What should my target options be for the ep93xx?  Right now I have:

CT_ARCH="arm"
CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
CT_ARCH_SUPPORT_ARCH=y
CT_ARCH_SUPPORT_CPU=y
CT_ARCH_SUPPORT_TUNE=y
CT_ARCH_SUPPORT_FPU=y
CT_ARCH_DEFAULT_LE=y
CT_ARCH_ARCH="armv4t"
CT_ARCH_CPU="arm920t"
CT_ARCH_TUNE="arm920t"
CT_ARCH_FPU=""
CT_ARCH_LE=y
CT_ARCH_FLOAT_SW=y
CT_TARGET_CFLAGS=""
CT_TARGET_LDFLAGS=""

Thanks for any help!

Regards,
Hartley

--
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]