Discussion:
[omniORB] HPUX 11.31 on Itanium 64 bit mode Bus Error
pneuste
2008-11-06 22:02:55 UTC
Permalink
I am experiencing a Bus Error exception when instantaiting omni_ior object
in the initializer for theCORBA Orb object. This is occuring when executing
the CdrMarshal function. It appears to be an Alignment problem, i.e.,
accessing data with an address that is not on the correct hardware byte
boundary, but I do not understand what must be done to correct this. Has
anyone out there ported omniOrb to this combination of Hardware and OS
version?
--
View this message in context: http://www.nabble.com/HPUX-11.31-on-Itanium-64-bit-mode-Bus-Error-tp20328619p20328619.html
Sent from the OmniORB - User mailing list archive at Nabble.com.
pneuste
2009-02-04 22:12:04 UTC
Permalink
The problem I am trying to describe appears to be a data alignment problem
that could be caused by either by the compiler or by the allocation
mechanism within omniORB for the cdrStream class. Itanium processors running
in 64 bit mode require all data to aligned on 8 byte boundaries but it
appears that the CdrMarshal macro inside of the cdrStream.h attempts to
store data using a pointer that is set to store at a 4 byte boundary. To be
specific it occurs at the code line 418 (within the >>= operator definition
for a Ulong. I am using the revision 1.1.4.17 of cdrStream.h that is part of
omniORB-4.1.1. This is part of an application hthat has been successfully
run for about 5 years using the HP PA-Risc hardware platform and since HP
has terminated that hardware platform it is imperative that this problem be
resolved ASAP.
Post by pneuste
I am experiencing a Bus Error exception when instantaiting omni_ior
object in the initializer for theCORBA Orb object. This is occuring when
executing the CdrMarshal function. It appears to be an Alignment problem,
i.e., accessing data with an address that is not on the correct hardware
byte boundary, but I do not understand what must be done to correct this.
Has anyone out there ported omniOrb to this combination of Hardware and OS
version?
--
View this message in context: http://www.nabble.com/HPUX-11.31-on-Itanium-64-bit-mode-Bus-Error-tp20328619p21833656.html
Sent from the OmniORB - User mailing list archive at Nabble.com.
Duncan Grisby
2009-02-05 17:08:18 UTC
Permalink
Post by pneuste
The problem I am trying to describe appears to be a data alignment problem
that could be caused by either by the compiler or by the allocation
mechanism within omniORB for the cdrStream class. Itanium processors running
in 64 bit mode require all data to aligned on 8 byte boundaries but it
appears that the CdrMarshal macro inside of the cdrStream.h attempts to
store data using a pointer that is set to store at a 4 byte boundary.
That sounds unlikely. If that was true, it would be impossible to access
every other item in an array of 32 bit integers, for example.
Post by pneuste
To be
specific it occurs at the code line 418 (within the >>= operator definition
for a Ulong. I am using the revision 1.1.4.17 of cdrStream.h that is part of
omniORB-4.1.1. This is part of an application hthat has been successfully
run for about 5 years using the HP PA-Risc hardware platform and since HP
has terminated that hardware platform it is imperative that this problem be
resolved ASAP.
How did you configure omniORB? Did you use the configure script, or the
old-style platform files? It sounds like your ULong type has ended up
being 64 bits rather than the 32 bits it's meant to be.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...