building vnc-3.3.7 on IRIX

Matthew Eldridge eldridge@Graphics.Stanford.EDU
Sun Apr 27 20:04:00 2003


I just got vnc-3.3.7 to build on IRIX, and I figured I might as well
relate the process.  Here are the instructions I saved for the next
time I try to build VNC:

-------

1. set the environment to use SGI's compiler

     setenv CC cc
     setenv CFLAGS "-02 -n32"
     setenv CXX CC
     setenv CXXFLAGS "-O2 -n32"

2. configure the build, and force configure to find the n32 X
libraries    

    ./configure --x-libraries=/usr/lib32

3. edit Xvnc/programs/Xserver/hw/vnc/Imakefile

   remove the line SpecialCObjectRule near the end of the file and
   add the define (-DXVNCRELEASE=\"XvncRelease") to the DEFINES line

4. build it

   make

   cd Xvnc
   make BOOTSTRAPCFLAGS=-DFIXUP_CPP_WHITESPACE World

5. edit vncserver

   give it the correct path to perl
   add a -localhost switch

-------

It took me a couple hours to work my way through all the build
problems and finally get it work, although happily it now appears to
be okay.  I'm dismayed it took as much effort as it did, since some of
the bugs I encountered had been hit by other people and reported on
the mailing list.  It would be great if this information found its way
into the top level README file

Going down the list:

2. This is kind of an odd bug, stemming from SGI's multiple-abi
stuff.  It would be nice if there was a platform specific build
instructions document to point out stuff like this.

3. Here's a link to somebody encountering the same bug, which is how I
figured out how to fix it.

  http://www.realvnc.com/pipermail/vnc-list/2001-March/020683.html

Should this change be made across the board?  Does anybody understand
why it is busted on IRIX?

4. the FIXUP_CPP_WHITESPACE hack should be mentioned in the top-level
README file, since it seems to affect many architectures

5. the vncserver perl script doesn't include a -localhost switch,
which seems like a big oversight

Other things that are a bit off

- Even at the default warning level the IRIX cc finds a lot of
  possible problems in the Xvnc code.  There are dozens of functions
  that don't return a value on all paths.  Arguably this might be
  okay, if it is known a path will never be taken.  And of course this
  is all based on the X code, and I can imagine not wanting to fix
  what ain't broke.

- Xvnc/config/util/makestrs.c includes a printf at line 390 that
  doesn't have enough arguments, so the program is definitely
  incorrect.  I checked the make output and it appears that makestrs
  is never run, so this may not be hurting anything.

-Matthew