A colleague of mine, Silhacene Aid, needed to build Open Inventor
under Linux on Intel Itanium, and did so successfully. Silhacene no longer
works with me, but he asked me to try to find out whether the changes
he made would be useful to feed back into the OIV source code. I append
a README that Silhacene wrote, which gives brief details of the sorts
of changes he made. Do they look to be more generally useful?
I know that apart from building on the Itanium, the modified
code was also tested on several other UNIX machines.
Mick Pont Numerical Algorithms Group (NAG) Ltd, Oxford, UK
mick@xxxxxxxxx
This README file gives a brief summary of the changes made by
NAG to the Open Source version of Open Inventor.
The original source of Open Inventor to which modifications have
been made is contained in inventor-2.1.5-7.src.tar.gz,
available at
ftp://oss.sgi.com/projects/inventor/download/
The main purpose of the modifications made to the source contained
in inventor-2.1.5-7.src.tar.gz is to enable the code to compile
more cleanly and to add support for 64-bit platforms (in particular
the Linux Intel Itanium platform).
The main modifications are :
- Added IS_64BIT switch for 64-bit platforms.
- Added switch GLU_TESS_VOID to take into account variants
of function type in call to gluTessCallback.
- Added NO_MENU_IN_OVERLAY_PLANES switch to disable overlay
planes if necessary. This follows a suggestion from
Steve Conolly (see the Inventor mailing lists at the
SGI Web site.)
- Added ICONV_BUG switch to account for a possible problem
with the iconv library.
- Made class destructors virtual whenever a class contains
virtual functions.
- Use of size_t instead of uint32_t or int.
- Removed redefinition of NULL as 0.
- Use of standard mathematical functions (e.g. sqrt, atan2
rather than sqrtf atan2f.)
- Renaming of functions, macros or variables to avoid conflicts
with system macros (e.g. abs -> oivabs, _ABS -> _OIVABS,
dprintf -> oiv_d_printf.)
- Moved definitions from header file mysetjmp.h
to a new C++ file mysetjmp.c++.
- Made variables 'const' where necessary.
- Removed some unused variables.
- Added standard header files where necessary (stdlib.h,
unistd.h)
- Replaced malloc.h by stdlib.h.
- Replaced alloca by malloc.
- Switched off use of dlopen in
inventor/lib/database/src/so/SoType.c++
- Fixed sprintf/fprintf formats.
- Removed hard-coded definitions and replaced them by inclusion
of image.h header file in
inventor/lib/database/src/so/SoOffscreenRenderer.c++
- Added support for Itanium in
inventor/lib/database/include/machine.h
- Broke up very long lines into shorter lines
(SoHandleBoxDraggerGeom.h, SoTransformerDraggerGeom.h) since
some compilers cannot handle them.
- Replaced a fixed-length buffer by a call to malloc
(in inventor/libFL/ang/fl.c)
- Changed C++-style comments to C-style comments.
The code has been successfully compiled on Linux Itanium using
gcc 3.0 with the following compiler options :
-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -Dlinux \
-D__USE_ISOC9X -ffast-math -DFUNCPROTO -DIS_64BIT \
-D_BSD_SOURCE -DNO_MENU_IN_OVERLAY_PLANES -DGLU_TESS_VOID \
-DICONV_BUG -DLIBRARYBUILD
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
|