[comp.windows.x] Help! Trying to build InterViews 2.3 ...

taube@sm.luth.se (Lars-Gunnar Taube) (11/09/88)

Greetings!

First of all, I would like to thank all of you who sent me pointers
on how to build cfront 1.2 on SUN. I now have a working cfront.

Sort of.

I have started to build InterViews 2.3 (coming with X11.R2)
on our SUN-3:s under SunOS 3.5 with AT&T cfront 1.2.1. So far,
no good. Cfront complains about a header file (include/Graphics/ref.h),
which generates an internal error ("bus error or something nasty like that",
I found it to be segmentation fault).

A little poking with xgdb shows that it all happens in the cfront
source file "expand.c", function "needs_zero".

Does any of this sound familiar? Perhaps you know of a fix?

If so, *Please* tell me of it!

This is a plea for help. Any pointers, etc. deeply apprieciated.


lgt

-- 
taube@luth.UUCP                                         Lars-Gunnar Taube
taube@sm.luth.se                                        Dept of Math & CS
...{uunet,mcvax}!enea!sm.luth.se!taube                  U of Lule, SWEDEN

calder@lurch.stanford.edu (Paul Calder) (11/12/88)

    I have started to build InterViews 2.3 (coming with X11.R2)
    on our SUN-3:s under SunOS 3.5 with AT&T cfront 1.2.1. So far,
    no good.

This is a bug in cfront that is tickled by InterViews.  As you
correctly point out, the problem is in expand.c.  Here are the
cdiffs.

src/expand.c
***************
*** 79,87 ****
  {
    	int val = 0, tmp = 1;
  	Pexpr ee = e->e1;
! 	if ( ee == 0 || ee->tp == 0 ) {
! 		return 0;
! 	}
  
  xxx:
  	switch( ee->tp->base ) {
--- 79,85 ----
  {
    	int val = 0, tmp = 1;
  	Pexpr ee = e->e1;
! 	if ( ee->tp == 0 ) return 0;
  
  xxx:
  	switch( ee->tp->base ) {
***************
*** 95,101 ****
  	}
  
  	if ( tmp == 1 ) {
! 		tmp++; if ((ee = e->e2) && ee->tp) goto xxx; 
  	}
  
  	return( val );
--- 93,99 ----
  	}
  
  	if ( tmp == 1 ) {
! 		tmp++; if (ee = e->e2) goto xxx; 
  	}
  
  	return( val );