[omniORB] Patch for OpenVMS port.

Bruce Visscher visschb@rjrt.com
Thu, 04 Oct 2001 11:12:45 -0400


This is a multi-part message in MIME format.
--------------E2E07FDD222D683DE995A0D7
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

[Note: I have taken the liberty of BCC'ing a few users that have
expressed interest in omniORB on OpenVMS.]

The attached patch addresses a bug in the Compaq C++ 6.3 compiler and
addresses some issues with using ODS 5 on OpenVMS.

I am told that the compiler bug will be fixed in the next field test
release.  I don't know whether Tru64 users are affected (but the patch
shouldn't hurt).

Bruce
-- 

Bruce Visscher                                        visschb@rjrt.com
--------------E2E07FDD222D683DE995A0D7
Content-Type: text/plain; charset=us-ascii;
 name="vms_ods5_cxx6_3.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="vms_ods5_cxx6_3.patch"

*** mk/clinkcommand.dcl	Mon Mar  6 13:32:44 2000
--- newmk/clinkcommand.dcl	Thu Oct  4 10:22:31 2001
***************
*** 25,35 ****
  $loop:
  $   nextLib = f$element(libIndex, " ", libList)
  $   if nextLib .eqs. " " .or. nextLib .eqs. "" then goto endLoop
! $   if f$parse(nextLib, "", "", "type") .eqs. ".OPT"
  $   then
  $     libQualifiers = libQualifiers + "," + nextLib + "/Opti"
  $   else
! $     if f$parse(nextLib, "", "", "type") .eqs. ".OBJ"
  $     then
  $       libQualifiers = libQualifiers + "," + nextLib
  $     else
--- 25,35 ----
  $loop:
  $   nextLib = f$element(libIndex, " ", libList)
  $   if nextLib .eqs. " " .or. nextLib .eqs. "" then goto endLoop
! $   if f$edit(f$parse(nextLib, "", "", "type"),"upcase") .eqs. ".OPT"
  $   then
  $     libQualifiers = libQualifiers + "," + nextLib + "/Opti"
  $   else
! $     if f$edit(f$parse(nextLib, "", "", "type"),"upcase") .eqs. ".OBJ"
  $     then
  $       libQualifiers = libQualifiers + "," + nextLib
  $     else
*** mk/cxxlinkcommand.dcl	Fri Mar 10 17:50:24 2000
--- newmk/cxxlinkcommand.dcl	Thu Oct  4 10:22:41 2001
***************
*** 26,36 ****
  $loop:
  $   nextLib = f$element(libIndex, " ", libList)
  $   if nextLib .eqs. " " .or. nextLib .eqs. "" then goto endLoop
! $   if f$parse(nextLib, "", "", "type") .eqs. ".OPT"
  $   then
  $     libQualifiers = libQualifiers + "," + nextLib + "/Opti"
  $   else
! $     if f$parse(nextLib, "", "", "type") .eqs. ".OBJ"
  $     then
  $       libQualifiers = libQualifiers + "," + nextLib
  $     else
--- 26,36 ----
  $loop:
  $   nextLib = f$element(libIndex, " ", libList)
  $   if nextLib .eqs. " " .or. nextLib .eqs. "" then goto endLoop
! $   if f$edit(f$parse(nextLib, "", "", "type"),"upcase") .eqs. ".OPT"
  $   then
  $     libQualifiers = libQualifiers + "," + nextLib + "/Opti"
  $   else
! $     if f$edit(f$parse(nextLib, "", "", "type"),"upcase") .eqs. ".OBJ"
  $     then
  $       libQualifiers = libQualifiers + "," + nextLib
  $     else
*** mk/handle_embedded_dots.dcl	Fri May 12 16:52:20 2000
--- newmk/handle_embedded_dots.dcl	Thu Oct  4 10:22:52 2001
***************
*** 1,34 ****
! $ ! Rename files that VMS can't (currently: pre VMS 7.2; no ODS-5).
  $
! $ ! pathworks convention:
  $
! $ next_pathworks:
  $
! $   next=f$search("*__2E*.*",1)
! $   if next .eqs. "" then goto end_pathworks
! $   name=f$parse(next,,,"name")
! $   type=f$parse(next,,,"type")
! $   newname = f$element(0,"__2E",name) + "_" + f$element(1,"__2E",name)
! $   oldname = name + type
! $   newname = newname + type
! $   rename 'oldname';* 'newname';*
! $   goto next_pathworks
! $
! $ end_pathworks:
! $
! $ ! vmstar convention:
! $
! $ next_vmstar:
! $
! $   next=f$search("*.*_*",2)
! $   if next .eqs. "" then goto end_vmstar
! $   name=f$parse(next,,,"name")
! $   type=f$parse(next,,,"type")
! $   newname = name + "_" + (f$element(0,"_",type)-".")
! $   newtype = "." + f$element(1,"_",type)
! $   oldname = name + type
! $   newname = newname + newtype
! $   rename 'oldname';* 'newname';*
! $   goto next_vmstar
  $
! $ end_vmstar:
--- 1,163 ----
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $ ! [mk]handle_embedded_dots.dcl - rename problematic filenames.
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  $
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $ is_ods5: subroutine
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  $
! $ is_ods5==0
  $
! $ ! If we're on VAX or VMS older than 7.x then assume ODS-2.
  $
! $ if f$getsyi("arch_name") .eqs. "VAX" then exit
! $ if f$getsyi("version") .les. "V7" then exit
! $
! $ ! Set DCL parse style to extended for the duration of this subroutine.
! $
! $ old_parse_style=f$getjpi("","parse_style_image")
! $ set process /parse=extended
! $
! $ on error then goto err
! $
! $ ! Get name of the lowest level directory node containing this command
! $ ! procedure.
! $
! $ comfile=f$environment("procedure")
! $ dirname=f$parse(comfile,,,"directory")-"["-"]"
! $
! $ inx=0
! $ last=""
! $ getnext:
! $   next=f$element(inx,".",dirname)
! $   if next.eqs."." then goto exit
! $   last=next
! $   inx=inx+1
! $   goto getnext
! $ exit:
! $
! $ ! We are dealing with an ODS-5 volume iff last equals "mk" (lowercase).
! $ ! [Note: Under current conventions, it wouldn't have been necessary to
! $ ! traverse the directory name, but at some point, I'd like to remove the
! $ ! current restriction to install omniORB in "root".]
! $
! $ is_ods5==(last .eqs. "mk")
! $
! $ ! Restore the parse style of the process.
! $
! $ set proc /parse='old_parse_style'
! $ exit 1
! $
! $ err:
! $ set proc /parse='old_parse_style'
! $ exit 0
! $
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $ endsubroutine		! is_ods5
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $
! $ call is_ods5
! $
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $ if is_ods5
! $ then
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $
! $   ! Set parse style to extended (Yes, we already did this in a different
! $   ! context).
! $
! $   old_parse_style=f$getjpi("","parse_style_image")
! $   set process /parse=extended
! $
! $   on error then goto err_ods5
! $
! $   ! Filenames of the form x.y.z are legal, but we're not quite ready for them
! $
! $   next_ods5:
! $
! $     next=f$search("*.*.*;*",1)
! $     if next .eqs. "" then goto end_ods5
! $     ! Assume no more than one pathology per name:
! $     name=f$parse(next,,,"name")-"^"
! $     type=f$parse(next,,,"type")
! $     newname = f$element(0,".",name) + "_" + f$element(1,".",name)
! $     oldname = name + type
! $     newname = newname + type
! $     rename 'oldname';* 'newname';*
! $     goto next_ods5
! $
! $   end_ods5:
! $
! $   ! ODS 5 preserves case, but MMS still (as of 3.4-3) uses upper case target
! $   ! names. Compaq C++ 6.3 preserves the case of the filename for use as the
! $   ! library element name (regardless of the setting of the /names=as_is vs
! $   ! upper_case qualifier).  To everyone's surprise, the librarian is case
! $   ! sensitive, so we have to ensure that all C++ source files are upper case.
! $   ! Note that the C compiler doesn't seem to have this problem.
! $
! $   next_upcase:
! $
! $     next=f$search("*.cc;",2)
! $     if next .eqs. "" then goto end_upcase
! $     name=f$parse(next,,,"name")
! $     type=f$parse(next,,,"type")
! $     oldname = name + type
! $     newname = f$edit(oldname,"upcase")
! $     rename 'oldname';* 'newname';*
! $     goto next_upcase
! $
! $   end_upcase:
! $
! $   ! Restore the parse style of the process.
! $
! $   exit_ods5:
! $   set proc /parse='old_parse_style'
! $   exit
! $
! $   err_ods5:
! $   set proc /parse='old_parse_style'
! $   exit 0
! $
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $ else		! not is_ods5
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $
! $   ! Rename files that VMS can't handle
! $
! $   ! pathworks convention logic never would have worked!!!  But nobody told
! $   ! me so it must not have been important.
! $
! $!!   next_pathworks:
! $
! $!!     next=f$search("*__2E*.*",1)
! $!!     if next .eqs. "" then goto end_pathworks
! $!!     name=f$parse(next,,,"name")
! $!!     type=f$parse(next,,,"type")
! $!!     newname = f$element(0,"__2E",name) + "_" + f$element(1,"__2E",name)
! $!!     oldname = name + type
! $!!     newname = newname + type
! $!!     rename 'oldname';* 'newname';*
! $!!     goto next_pathworks
! $
! $!!   end_pathworks:
! $
! $   ! vmstar convention:
! $
! $   next_vmstar:
! $
! $     next=f$search("*.*_*",2)
! $     if next .eqs. "" then goto end_vmstar
! $     name=f$parse(next,,,"name")
! $     type=f$parse(next,,,"type")
! $     newname = name + "_" + (f$element(0,"_",type)-".")
! $     newtype = "." + f$element(1,"_",type)
! $     oldname = name + type
! $     newname = newname + newtype
! $     rename 'oldname';* 'newname';*
! $     goto next_vmstar
! $
! $   end_vmstar:
! $
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! $ endif		! is_ods5 branch
! $ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*** include/omniORB3/CORBA.h	Fri Jun  1 09:56:58 2001
--- newinclude/omniORB3/CORBA.h	Thu Oct  4 10:19:04 2001
***************
*** 1825,1832 ****
--- 1825,1838 ----
      virtual Long get_long() = 0;
      virtual ULong get_ulong() = 0;
  #ifndef NO_FLOAT
+ #if defined(__DECCXX)
+ //  Bug in Compaq C++ 6.3 compiler.  Don't know when it will be fixed.
+     virtual _CORBA_Float get_float() = 0;
+     virtual _CORBA_Double get_double() = 0;
+ #else
      virtual Float get_float() = 0;
      virtual Double get_double() = 0;
+ #endif
  #endif
      virtual char* get_string() = 0;
      virtual Object_ptr get_reference() = 0;


--------------E2E07FDD222D683DE995A0D7
Content-Type: text/plain;
	name="InterScan_Disclaimer.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="InterScan_Disclaimer.txt"

CONFIDENTIALITY NOTE:  This e-mail message, including any attachment(s), contains information that may be confidential, protected by the attorney-client or other legal privileges, and/or proprietary non-public information.  If you are not an intended recipient of this message or an authorized assistant to an intended recipient, please notify the sender by replying to this message and then delete it from your system.  Use, dissemination, distribution, or reproduction of this message and/or any of its attachments (if any) by unintended recipients is not authorized and may be unlawful.


--------------E2E07FDD222D683DE995A0D7--