[comp.os.minix] c386 - problem with NOFLOAT

grundy@rtf.bt.co.uk (Martin Grundy) (05/03/91)

Hi all...

I have recently upgraded to Minix-386 (thanks Bruce :-) with no problems
and thought I would try CvWs c386, which I have grabbed of the net when
it was posted back in January, together with Patches 1 and 2.

My access to news is via a Sequent S27, and anything I save, I keep there
as its backed up. I also uudecode/uncompress it on this machine.

I have successfully patched and compiled c386 on the Sequent with two
exceptions.

1.  In gen386.c. At PL1, the statement:-

	      ap2=&ecx_reg;

     occurs at line 838 in function g_asdiv().  The Sequent's C compiler,
     (which is BSD I believe) gives a warning that an "old style
     assignment" has been used and that it has assumed a "&=" was meant.
     Given that ap2 is of type "struct amode *", I assume that the
     statement should read:-

	      ap2 = &ecx_reg;

     This problem may not occur on Minix ACK, bcc or Gnu-C :-)

2.   Having transferred the sources to my Minix-386 box, I tried to
     compile c386 under bcc. The first thing was bcc objected as it has
     no floating point, (or perhaps it is the lack of a 387 ?).
     I patched the Makefile to include -DNOFLOAT.

     Then, on line 1688 of gen386.c (PL1)

        gendouble(node->v.f);

     bcc said that "f" was undefined.  Looking at the definition of struct
     enode in expr.h, I found this:-

	    union {
		long            i;
	#ifndef NOFLOAT
		double          f;
	#endif
		char           *sp;
		struct enode   *p[2];
	    }               v;

     ie. with NOFLOAT defined, double f; is missing.

     Has any one else found this problem ?

--------------------------------------------------------------------
Martin Grundy                     |  email: grundy@rtf.bt.co.uk
British Telecom Customer Systems  |
Hyperion House                    |  phone: +44 273 762102
96-99 Queens Road                 |  fax:   +44 273 722038 or
Brighton BN1 3XF.                 |         +44 273 762071 (netfax)

Christoph van Wuellen <HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu> (05/04/91)

I will put a space in between so there is no =& in the code...
only some strange compilers make difficulties....

I will look at the NOFLOAT problem, NOFLOAT was a problem since it was
introduced (it was introduced for a very different purpose, and evolved
against my will).

C.v.W.