[ECOS] sprintf test failure?

Jesper Skov jskov@cygnus.co.uk
Fri Nov 19 15:47:00 GMT 1999


>>>>> "Grant" == Grant Edwards <grante@visi.com> writes:

Grant> On Wed, Nov 17, 1999 at 09:48:44PM +0100, Jesper Skov wrote:
>> The ARM has some funny layout of doubles in BE mode (or possibly LE
>> mode) where the order of the words are different than the order of
>> the individual bytes. I.e., EFGHABCD or DCBAHGFE... See what I
>> mean?

Grant> At least w/ gcc 2.95.2 the layout is strictly MSB first.

Grant> The problem was that the macro CYG_BYTEORDER in the file
Grant> ecos-snds/install/include/cyg/hal/basetype.h was defined as
Grant> CYG_LSBFIRST and it should be CYG_MSBFIRST.

Grant> This caused the wrong unions to be used for disecting IEEE
Grant> floats and doubles.

Grant> I don't know how that file gets generated, I presume the
Grant> package config processes copied it from
Grant> hal/arm/arch/current/include/basetype.h.

Grant> Apparently there's only the one "basetype.h" file for the arm,
Grant> and there should be two?

Grant> Somehow the pidBE platform package needs to handle this.

Grant> Changing to CYG_MSBFIRST fixed the sprintf errors, and though I
Grant> haven't re-run the libm tests, I expect those will be OK.  But,
Grant> I'm going to go home while I'm ahead, just in case...

Bugger!

This is what it should look like - and actually does look like in my
tree. It's a merge oversight. I'll check in the changes right away.

Sorry for the hassle I've caused you.

Jesper

#if defined(__ARMEB__)
#define CYG_BYTEORDER           CYG_MSBFIRST    // Big endian
#else
#define CYG_BYTEORDER           CYG_LSBFIRST    // Little endian
#endif


More information about the Ecos-discuss mailing list