[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: buildd failure for sparc - floating point encoding?



A couple of potentially useful observations for you:

1) A floating point encoding format appeared to be defined for Sun, as
type 1 in your code listing.

2) Modern microprocessors like SPARC, i386, etc. really should all be
using uniform IEEE 754 floating point number formats. Here is an
overview: http://stevehollasch.com/cgindex/coding/ieeefloat.html

Good luck in overcoming these development obstacles. I am sorry if this
information does not help.

--- Helen Faulkner <helen_ml_faulkner@yahoo.co.uk> wrote:

> Please CC to me - I'm not subscribed to the list.
> 
> 
> I am maintaining a new package, labplot, that is failing, at its
> first upload, 
> to build on sparc (among other things).  Actually it hasn't gotten to
> the end of 
> the sparc queue yet, but I tested it on someone's machine and it is
> broken in 
> the same way as several other architectures.
> 
> I believe the problem is that there is no floating point encoding
> being defined 
> for sparc, which is leading to an undefined type of struct later on.
> 
> The program defines the floating point encoding in the included cdf
> library like 
> this (from cdf/cdfdist.h, line 437 onwards):
> 
> 
>
/*****************************************************************************
> * Floating-point encodings.
> *   1..........Sun, SGi, IBM-RS, HP, NeXT, Macintosh
> *   2..........DECstation, IBM-PC, Alpha (OSF/1), Alpha (OpenVMS -
> IEEE_FLOAT)
> *   3..........VAX, Alpha (OpenVMS - D_FLOAT)
> *   4..........Alpha (OpenVMS - G_FLOAT)
>
*****************************************************************************/
> 
> #if 
>
defined(sun)||defined(MIPSEB)||defined(IBMRS)||defined(HP)||defined(NeXT)||defined(mac)||defined(POWERPC)
> #  define FP1cpu
> #endif
> 
> #if 
>
defined(MIPSEL)||defined(IBMPC)||defined(alphaosf)||defined(alphavmsI)||defined(posixSHELLalphaI)
> #  define FP2cpu
> #endif
> 
> #if defined(vax)||defined(alphavmsD)||defined(posixSHELLalphaD)
> #  define FP3cpu
> #endif
> 
> #if defined(alphavmsG)||defined(posixSHELLalphaG)
> #  define FP4cpu
> #endif
> 
> 
> Does anyone know whether sparc uses the same encoding as one of these
> examples? 
> What I am hoping is that sparc uses the same floating point encoding
> as one of 
> the archs this code already works for, and that it's therefore only a
> matter of 
> fixing the #if statements above to include the sparc case.
> 
> The FP*cpu definition is used later, (see below, from cdf/cdflib.h,
> line 400 
> onwards) to define the data structs.  Hopefully one of these will
> work for sparc.
> 
> If anyone can help with a suggestion, that would be great.
> 
> Thank you,
> 
> Helen.
> 
> 
>
/******************************************************************************
> * Floating-point structures.
>
******************************************************************************/
> 
> #if defined(FP1cpu)
>    struct fp1struct4 {
>      uInt s : 1, e1 : 7, e0 : 1, m2 : 7, m1 : 8, m0 : 8;
>    };
>    struct fp2struct4 {
>      uInt m0 : 8, m1 : 8, e0 : 1, m2 : 7, s : 1, e1 : 7;
>    };
>    struct fp34struct4 {
>      uInt e0 : 1, m2 : 7, s : 1, e1 : 7, m0 : 8, m1 : 8;
>    };
>    struct fp1struct8 {
>      uInt s : 1, e1 : 7, e0 : 4, m6 : 4, m5 : 8,
>       m4 : 8, m3 : 8, m2 : 8, m1 : 8, m0 : 8;
>    };
>    struct fp2struct8 {
>      uInt m0 : 8, m1 : 8, m2 : 8, m3 : 8, m4 : 8,
>       m5 : 8, e0 : 4, m6 : 4, s : 1, e1 : 7;
>    };
>    struct fp3struct8 {
>      uInt e0 : 1, m6 : 7, s : 1, e1 : 7, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
>    struct fp4struct8 {
>      uInt e0 : 4, m6 : 4, s : 1, e1 : 7, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
> #endif
> 
> #if defined(FP2cpu)
>    struct fp1struct4 {
>      uInt e1 : 7, s : 1, m2 : 7, e0 : 1, m1 : 8, m0 : 8;
>    };
>    struct fp2struct4 {
>      uInt m0 : 8, m1 : 8, m2 : 7, e0 : 1, e1 : 7, s : 1;
>    };
>    struct fp34struct4 {
>      uInt m2 : 7, e0 : 1, e1 : 7, s : 1, m0 : 8, m1 : 8;
>    };
>    struct fp1struct8 {
>      uInt e1 : 7, s : 1, m6 : 4, e0 : 4, m5 : 8,
>       m4 : 8, m3 : 8, m2 : 8, m1 : 8, m0 : 8;
>    };
>    struct fp2struct8 {
>      uInt m0 : 8, m1 : 8, m2 : 8, m3 : 8, m4 : 8,
>       m5 : 8, m6 : 4, e0 : 4, e1 : 7, s : 1;
>    };
>    struct fp3struct8 {
>      uInt m6 : 7, e0 : 1, e1 : 7, s : 1, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
>    struct fp4struct8 {
>      uInt m6 : 4, e0 : 4, e1 : 7, s : 1, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
> #endif
> 
> #if defined(FP3cpu)
>    struct fp1struct4 {
>      uInt e1 : 7, s : 1, m2 : 7, e0 : 1, m1 : 8, m0 : 8;
>    };
>    struct fp2struct4 {
>      uInt m0 : 8, m1 : 8, m2 : 7, e0 : 1, e1 : 7, s : 1;
>    };
>    struct fp34struct4 {
>      uInt m2 : 7, e0 : 1, e1 : 7, s : 1, m0 : 8, m1 : 8;
>    };
>    struct fp1struct8 {
>      uInt e1 : 7, s : 1, m6 : 4, e0 : 4, m5 : 8,
>       m4 : 8, m3 : 8, m2 : 8, m1 : 8, m0 : 8;
>    };
>    struct fp2struct8 {
>      uInt m0 : 8, m1 : 8, m2 : 8, m3 : 8, m4 : 8,
>       m5 : 8, m6 : 4, e0 : 4, e1 : 7, s : 1;
>    };
>    struct fp3struct8 {
>      uInt m6 : 7, e0 : 1, e1 : 7, s : 1, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
>    struct fp4struct8 {
>      uInt m6 : 4, e0 : 4, e1 : 7, s : 1, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
> #endif
> 
> #if defined(FP4cpu)
>    struct fp1struct4 {
>      uInt e1 : 7, s : 1, m2 : 7, e0 : 1, m1 : 8, m0 : 8;
>    };
>    struct fp2struct4 {
>      uInt m0 : 8, m1 : 8, m2 : 7, e0 : 1, e1 : 7, s : 1;
>    };
>    struct fp34struct4 {
>      uInt m2 : 7, e0 : 1, e1 : 7, s : 1, m0 : 8, m1 : 8;
>    };
>    struct fp1struct8 {
>      uInt e1 : 7, s : 1, m6 : 4, e0 : 4, m5 : 8,
>       m4 : 8, m3 : 8, m2 : 8, m1 : 8, m0 : 8;
>    };
>    struct fp2struct8 {
>      uInt m0 : 8, m1 : 8, m2 : 8, m3 : 8, m4 : 8,
>       m5 : 8, m6 : 4, e0 : 4, e1 : 7, s : 1;
>    };
>    struct fp3struct8 {
>      uInt m6 : 7, e0 : 1, e1 : 7, s : 1, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
>    struct fp4struct8 {
>      uInt m6 : 4, e0 : 4, e1 : 7, s : 1, m4 : 8,
>       m5 : 8, m2 : 8, m3 : 8, m0 : 8, m1 : 8;
>    };
> #endif
> 
> 
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-sparc-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
> 
> 



Reply to: