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