I did a port to an SGI Itanium some time ago. Below are the changes I had to make. I don't want to send the changed sources since that is quite a pack. Let me know if you need them.

Don't know all changes below are nessecary but overall it seems to work reliably.

Regards,

Mattijs



here are the changes we had to make for the Itanium2 port using
gcc3.3.1. It also contains some fixes of errors that valgrind detected.

1] Needed latest libutils (2.14) since old one gives 'Dwarf' errors when
linking.

2] Used latest OpenMotif (2.2.2) since installed version was lessTiff
which immediately fell over when opening first window.

3] Optional: if you want to debug gcc3.3.1 code you'll also need the
latest gdb + some itanium specific patches.


Source changes:
(I put all the changed files in src/ into attached pack.)

All Makefile:
Changed all optimization to -O1 (just did a global replace of -O2 with
-O1 on all Makefiles). Probably just one file which gives problems but
haven't managed to find out.


bin/dx.in:

Around line 615 put an extra 'if' block around the commandline setting.
This was needed for a port to an old Solaris where some ancient shell
version is running. It insisted on setting the positional arguments to
the commandline ones when 'set -- $VAR' was issued with an empty VAR.
Never had this problem on other machines so might just be the version.



src/exec/dpexec/socket.c:
src/uipp/dxuilib/PacketIF.C:
Hack: Added some slack between buffer size wanted and set to get rid of
the warning message on Linux (which uses a few bytes of the buffer for
itself it seems)


src/exec/dxmods/_newtri.c:
Applied the published fix for the gcc compiler bug with functions with
five arguments.

src/exec/dxmods/quantize.c:
Initializer for depthlist did not match definition. This one was found
by valgrind.

src/exec/hwrender/opengl/hwPortUtilOGL.c:
Changed int into long to get rid of nasty cast from int(32bit) to
pointer (64bit). I only did the beginning of this, there are plenty more
to do.


src/uipp/base/Application.C:
src/uipp/base/Command.C:
src/uipp/base/IBMApplication.C:
src/uipp/base/MainWindow.C:
src/uipp/base/Strings.C:
src/uipp/base/TimedMessage.C:
src/uipp/base/UIComponent.C:
src/uipp/dxui/MacroDefinition.C:
src/uipp/dxui/NodeDefinition.C:
src/uipp/dxui/ParameterDefinition.C:
src/uipp/dxuilib/MsgWin.C:
src/uipp/dxuilib/ParseMDF.C:

delete of something allocated with new[]. Valgrind finds these.




src/uipp/base/Server.C:
src/uipp/base/StringTable.C
src/uipp/base/StringTable.h
src/uipp/base/SymbolManager.h
src/uipp/dxuilib/DXApplication.C
src/uipp/dxuilib/EditorWindow.C
src/uipp/dxuilib/Network.C
src/uipp/dxuilib/WorkSpaceComponent.C:
src/uipp/dxuilib/WorkSpaceComponent.h:

changed int to long. ('Symbol' is now long to be able to store pointer)



src/uipp/dxui/DialInteractor.C:
src/uipp/dxuilib/AutoAxesDialog.C:
src/uipp/dxuilib/ColorMapAddCtlDialog.C:
src/uipp/dxuilib/ImageFormatDialog.C:
src/uipp/dxuilib/PostScriptImageFormat.C:
src/uipp/dxuilib/SetScalarAttrDialog.C:
src/uipp/dxuilib/ThrottleDialog.C:
src/uipp/dxuilib/TickLabel.C:
src/uipp/dxuilib/ViewControlDialog.C:
src/uipp/widgets/ColorMapEditor.c:
src/uipp/widgets/ControlPoint.c:
src/uipp/widgets/FrameControl.c:
src/uipp/widgets/XmDX.h:

Itanium&Alpha pass-by-value fix. These machines pass doubles into
XSetValue by value instead of by reference. I added a definition of a
macro for the machines where this is the case (why is IRIX64 not
affected by this?) and set the macro to true for Alpha, Itanium and
Opteron (not yet tested)

XmXH.h:

#if defined(alphax) || defined(__ia64__) || defined(__LP64__)
#define PASSDOUBLEVALUE 1
#endif

and all the '#ifdef alphax' in the code is now replaced by '#if
PASSDOUBLEVALUE'


The itanium port I tested with my network with lots of interactors and
simple graphics (sampling plane with values and vectors) and it seems
pretty stable. I haven't tried whether I can access more than 2Gb of memory.




Henrik Löf wrote:
Hi,

I've just compiled OpenDX 4.3.0 on my old HP i2000 Itanium machine running Linux 2.4.22.

The UI just dumps core on me with an internal error:

Internal error detected at "../base/AllocatorDictionary.h":64
No files needed to be saved

Any clues?

/Henrik


--
/*---------------------------------------------------------*\
| ===========           Mattijs Janssens                    |
| \\        /           Development Engineer                |
|  \\      /                                                |
|   \\    /             Nabla Ltd.                          |
|    \\  /              The Mews, Picketts Lodge            |
|     \\/               Picketts Lane, Salfords,            |
|     F ield            Surrey RH1 5RG.                     |
|     O peration        Tel: +44 (0)1293 821272             |
|     A nd              Email: [EMAIL PROTECTED]       |
|     M anipulation     URL: http://www.Nabla.co.uk         |
\*---------------------------------------------------------*/

Reply via email to