[comp.windows.x] Purdue patches problem

jlevy@arisia.Xerox.COM (Jacob Levy) (12/20/88)

I applied the patches, did "make Makefile; make Makefiles depend; make".
I'm on a Sun 3/260, using SunOS 3.5 using CC=cc. In trying to compile
mfbsetsp.c the compiler complains about line 77:

"mfbsetsp.c", line 77: compiler error: no table entry for op REG

Anyone knows what is the problem? Any help appreciated,

	--Jacob

brooks@maddog.llnl.gov (Eugene Brooks) (12/20/88)

In article <473@arisia.Xerox.COM> jlevy.pa@xerox.com (Jacob Levy) writes:
>I applied the patches, did "make Makefile; make Makefiles depend; make".
>I'm on a Sun 3/260, using SunOS 3.5 using CC=cc. In trying to compile
>mfbsetsp.c the compiler complains about line 77:
>
>"mfbsetsp.c", line 77: compiler error: no table entry for op REG
The PURDUE speedups are compilable with the SUN CC (a PCC based compiler).
The error message you got indicates that PCC ran out of registers trying to
evaluate an expression.  We had no problem with SUN CC, but our system does
not have an FPA and I suspect that your 3/260 might have one.  If so, SUN
make may be sticking in the -fpa flag for you and the bug might be in the
FPA compiler only.  You can turn this off by setting FLOAT_OPTION=68881
in your environment.

To compile Xsun with GCC, I only know GCC 1.30 or later to work, you must
ensure that oscolor.c gets compiled with the SUN CC.  In addition to this
GCC croaks on a bitblt routine in the cfb code, and as we don't have any
color monitors we just compile this section with SUN CC.  Use the following
patch to take care of oscolor.c, patch the Imakefile in server/os/4.2bsd.
Don't forget to run the script shipped with GCC which installs patches of
the SUN include files which will croak GCC with errors and don't forget to
remake the Makefile.

*** /tmp/,RCSt1a00313	Mon Dec 19 21:17:08 1988
--- Imakefile	Sun Dec  4 09:56:02 1988
***************
*** 83,88
  	ar x $(PWLIB) alloca.o
  #endif /* NEED_ALLOCA_FROM_LIBPW */
  
  SpecialObjectRule(osinit.o, $(ICONFIGFILES), -DADMPATH=\"$(ADMDIR)/X\%smsgs\")
  SpecialObjectRule(WaitFor.o, $(ICONFIGFILES), $(EXT_DEFINES))
  SpecialObjectRule(fonttype.o, $(ICONFIGFILES), $(FONT_DEFINES))

--- 83,92 -----
  	ar x $(PWLIB) alloca.o
  #endif /* NEED_ALLOCA_FROM_LIBPW */
  
+ oscolor.o :
+ 	rm -f oscolor.o
+ 	cc -c $(CFLAGS) oscolor.c
+ 
  SpecialObjectRule(osinit.o, $(ICONFIGFILES), -DADMPATH=\"$(ADMDIR)/X\%smsgs\")
  SpecialObjectRule(WaitFor.o, $(ICONFIGFILES), $(EXT_DEFINES))
  SpecialObjectRule(fonttype.o, $(ICONFIGFILES), $(FONT_DEFINES))

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Finally, you have to take care of the routine in the cfb code which will blow
off with GCC. As we don't have color hardware, I punted this and just compiled
the directory using CC.  If you want better color frame buffer code you will
actually have to deal with the problem, perhaps the bug can be found and killed
or you can use the same trick as in oscolor.c.

Script which I use to build Xsun, after a make World has built a CC version.
#!/bin/sh
make clean
# Gcc croaks on the bitblit routine in cfb
(cd ddx/cfb; make)
make CC=gcc Xsun

GCC can compile the PURDUE+ speedups, but CC will croak on them.