[comp.windows.x] Help compiling XView 2.0 on decstation 3100

putz@boulder.Colorado.EDU (Eric Putz) (11/03/90)

While attempting to compile XView 2.0, I get the following error:

 making all in ./lib/libxvin/notify...
 rm -f ndet_loop.o
 cc -c -O -Wf,-XNh2000 -Olimit 2000  -I../../../. -I../../.././build/usr/include
      ndet_loop.c
 cpp: warning /usr/include/stdio.h:84: NULL redefined
 cpp: warning /usr/include/rpc/types.h:63: FALSE redefined
 cpp: warning /usr/include/rpc/types.h:64: TRUE redefined
 ccom: Error: ndet_loop.c, line 171: svc_fdset undefined
             (void) ntfy_fd_cpy_or (&ibits, &svc_fdset);
       -----------------------------------------------^
 ccom: Error: ndet_loop.c, line 278: operands of = have incompatible types
                 rpc_bits = svc_fdset;
       ------------------------------^
 *** Error code 1
 
 Stop.
 
Upon further investigation, it is found that svc_fdset is defined on a 
sun system (sparcstation 1+) in the file /usr/include/rpc/svc.h. It is
not defined here, or elsewhere, on the DS3100. We are running OS version 3.1,
and have a 4.0 machine also available to us. It is not defined on either
machine.

So my question is, has anyone ported XViews 2.0 to the DS, and if so, what is
the workaround?

Thanks in advance,

eric.
+---------
|Eric Putz                    				 (303)492-1474
|MCD Biology, Campus Box 347, University of Colorado, Boulder CO 80309 
|putz@Boulder.Colorado.EDU                 

mh@roger.imsd.contel.com (Mike Hoegeman) (11/04/90)

In article <putz.657572484@beagle> putz@boulder.Colorado.EDU (Eric Putz) writes:
 >While attempting to compile XView 2.0, I get the following error:
 >
 > making all in ./lib/libxvin/notify...
 > rm -f ndet_loop.o
 > cc -c -O -Wf,-XNh2000 -Olimit 2000  -I../../../. -I../../.././build/usr/include
 >      ndet_loop.c
 > cpp: warning /usr/include/stdio.h:84: NULL redefined
 > cpp: warning /usr/include/rpc/types.h:63: FALSE redefined
 > cpp: warning /usr/include/rpc/types.h:64: TRUE redefined
 > ccom: Error: ndet_loop.c, line 171: svc_fdset undefined
 >             (void) ntfy_fd_cpy_or (&ibits, &svc_fdset);
 >       -----------------------------------------------^
 > ccom: Error: ndet_loop.c, line 278: operands of = have incompatible types
 >                 rpc_bits = svc_fdset;
 >       ------------------------------^
 > *** Error code 1
 > Stop.
 >Upon further investigation, it is found that svc_fdset is defined on a 
 >sun system (sparcstation 1+) in the file /usr/include/rpc/svc.h. It is
 >not defined here, or elsewhere, on the DS3100. We are running OS version 3.1,
 >and have a 4.0 machine also available to us. It is not defined on either
 >machine.
 >
 >So my question is, has anyone ported XViews 2.0 to the DS, and if so, what is
 >the workaround?

Well, to me it looks like you have a lame-o RPC implementation running
on your machine, It should be a moderately easy task to build a new
version of RPC on your machine and have XView use that instead. You can
get the latest copy of RPC via anon. ftp from titan.rice.edu in the
sun-sources directory

-mike h.

dana@dino.bellcore.com (Dana A. Chee) (12/17/90)

In article <putz.657572484@beagle>, putz@boulder.Colorado.EDU (Eric
Putz) writes:
|> While attempting to compile XView 2.0, I get the following error:
|> 
|>  making all in ./lib/libxvin/notify...
|>  rm -f ndet_loop.o
|>  cc -c -O -Wf,-XNh2000 -Olimit 2000  -I../../../.
-I../../.././build/usr/include
|>       ndet_loop.c
|>  cpp: warning /usr/include/stdio.h:84: NULL redefined
|>  cpp: warning /usr/include/rpc/types.h:63: FALSE redefined
|>  cpp: warning /usr/include/rpc/types.h:64: TRUE redefined
|>  ccom: Error: ndet_loop.c, line 171: svc_fdset undefined
|>              (void) ntfy_fd_cpy_or (&ibits, &svc_fdset);
|>        -----------------------------------------------^
|>  ccom: Error: ndet_loop.c, line 278: operands of = have incompatible
types
|>                  rpc_bits = svc_fdset;
|>        ------------------------------^
|>  *** Error code 1
|>  
|>  Stop.
|>  
|> Upon further investigation, it is found that svc_fdset is defined on
a 
|> sun system (sparcstation 1+) in the file /usr/include/rpc/svc.h. It
is
|> not defined here, or elsewhere, on the DS3100. We are running OS
version 3.1,
|> and have a 4.0 machine also available to us. It is not defined on
either
|> machine.
|> 
|> So my question is, has anyone ported XViews 2.0 to the DS, and if so,
what is
|> the workaround?
|> 
|> Thanks in advance,
|> 
|> eric.
|> +---------
|> |Eric Putz                    				 (303)492-1474
|> |MCD Biology, Campus Box 347, University of Colorado, Boulder CO
80309 
|> |putz@Boulder.Colorado.EDU                 

Ah yes, the 3100/5000 stuff.  Well, I at least got the libraries to
compile (I still have to work on the clients).  ndet_loop will not be
your only problem.  But first, the patch to ndnet_loop.c

*** ndet_loop.c.or	Thu Aug  9 23:47:09 1990
--- ndet_loop.c	Mon Dec 17 09:14:47 1990
***************
*** 119,124 ****
--- 119,127 ----
  {
      register struct timeval *timer;
      fd_set          ibits, obits, ebits;
+ #ifdef ultrix
+     fd_set	    svc_fdset;
+ #endif
      register int    nfds;
      NDET_ENUM_SEND  enum_send;
      int             errno_remember = errno;
***************
*** 127,132 ****
--- 130,139 ----
      FD_ZERO(&ibits);
      FD_ZERO(&obits);
      FD_ZERO(&ebits);
+ #ifdef ultrix
+     FD_ZERO(&svc_fdset);
+     svc_fdset.fds_bits[0] = svc_fds;
+ #endif
      /* Notify_start is not reentrant */
      if (ndet_flags & NDET_STARTED) {
  	ntfy_set_errno(NOTIFY_INVAL);
***************
*** 167,172 ****
--- 174,182 ----
  		 ndis_clients != NTFY_CLIENT_NULL) ?
  	    &ndet_polling_tv : NTFY_TIMEVAL_NULL;
  	ibits = ndet_ibits;
+ #ifdef ultrix
+ 	svc_fdset.fds_bits[0] = svc_fds;
+ #endif
  	if (do_rpc)
  	    (void) ntfy_fd_cpy_or (&ibits, &svc_fdset);
  	obits = ndet_obits;

Now, the next thing you will have to do is to change all

#ifdef FILE

to

#if !(defined (FILE) || defined(_IOREAD))

since Ultrix decided to change FILE from a #define to a typedef

The include files involved will be in build/usr/include/xview and
build/usr/include/xview_private.  Mind you, this probably isn't the
proper fix.

Moving right along, in lib/libxvin/window/window_set.c, remove the
static in front of window_set_cmap_property.

Now, the last thing that I remember (i.e., wrote down) was that in
lib/pixrect/Imakefile, the includes directive for HEADERS2
(rasterfile.h) put it in the wrong place.  Here's the one I used:

BuildIncludes($(HEADERS2),$(INCDIR),/**/)

Hopefully I didn't forget anything.  Happy building.
--
+***********************************************************************
***+
*  Dana Chee				(201) 829-4488			  *
*  Bellcore								  *
*  Room 2Q-250								  *
*  445 South Street			ARPA: dana@bellcore.com		  *
*  Morristown,  NJ  07960-1910		UUCP: {gateways}!bellcore!dana	  *
+***********************************************************************
***+

halazar@media-lab.MEDIA.MIT.EDU (Michael Halle) (12/18/90)

Here are a couple of other patches that I had to apply to get Xview to
work on a Decstation 5000.

I hate the idea of passing out a lot of unofficial patches to Xview,
but it took me a long time to track one of these down and I don't see a
public patch collection showing up anywhere.  So here goes.

The first patch is to fix a slider core dump...looks like something got
broken in the 2D->3D code transition.  Pretty generic fix, not machine
specific.
The file is lib/libolgx/ol_slider.c .

The second bug was much more sinister.  My 3D-look panels were all
coming up monochromatic and broken-looking.  2D was fine.  Also, menus
would work only the first time, then would come up blank.  It turned
out that the colormap was not being properly initialized because the
cmap code uses a bunch of single bit bitfields for status .  These
bits were, unfortunately, declared as "int :1".  Looks like some
interesting sign error happened when a bit got set: where's the sign
bit in a one bit signed field?  Anyway, I changed the declaration to
be "unsigned int :1" and all was well. 
The file is lib/libxvin/color/cms_impl.h .

Patches follow.  Enjoy.

						--Michael Halle
						MIT Media Lab
						Spatial Imaging Group
						mhalle@media-lab.media.mit.edu


*** lib/libolgx/ol_slider.c	Fri Nov 23 02:07:34 1990
--- lib/libolgx/ol_slider.c.~1~	Fri Nov 23 01:29:48 1990
***************
*** 318,325 ****
  	/*
  	 * erase the old slider
  	 */
! 	XFillRectangle(info->dpy, win, info->three_d ? info->gc_rec[OLGX_BG1]->gc
! 		       : info->gc_rec[OLGX_WHITE]->gc, xstart,
  		       y,
  		       xwidth, info->slider_height + 1);
  
--- 318,324 ----
  	/*
  	 * erase the old slider
  	 */
! 	XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG1]->gc, xstart,
  		       y,
  		       xwidth, info->slider_height + 1);


*** lib/libxvin/color/cms_impl.h	Fri Nov 23 07:01:20 1990
--- lib/libxvin/color/cms_impl.h.~1~	Fri Nov 23 07:00:37 1990
***************
*** 43,49 ****
  #define STATUS(cms, field)           ((cms)->status_bits.field)
  #define STATUS_SET(cms, field)       STATUS(cms, field) = TRUE
  #define STATUS_RESET(cms, field)     STATUS(cms, field) = FALSE
! #define BIT_FIELD(field)             unsigned int field : 1
  
  /*
   ***********************************************************************
--- 43,49 ----
  #define STATUS(cms, field)           ((cms)->status_bits.field)
  #define STATUS_SET(cms, field)       STATUS(cms, field) = TRUE
  #define STATUS_RESET(cms, field)     STATUS(cms, field) = FALSE
! #define BIT_FIELD(field)             int field : 1
  
  /*
   ***********************************************************************