Operating System - OpenVMS
1752270 Members
4689 Online
108786 Solutions
New Discussion юеВ

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

 
SOLVED
Go to solution
Arch_Muthiah
Honored Contributor

Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Hi,

Env:
I have application developed using Macro 64, C,and C++ for Alpha/OpenVMS. Now I want to run this applcation on I64/OpenVMS.

Application:
This system security related applcaiton accesses most of the System routines from MACRO 64, and RTL routines from C, and C++.

Questions:
I am going thru HP C release notes and I64/OpenVMS release notes. But I feel confident when I make sure from you-VMS gurus about any changed/new features relating to application and system programming in this version of I64/OpenVMS operating system

Your suggestions/findings would be appreciated.

Archunan
Regards
Archie
16 REPLIES 16
Ian Miller.
Honored Contributor
Solution

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Which version of VMS alpha are you comparing VMS I6.4? V8.2 Alpha and I64 are nearly the same but as you have some MACRO64 then I assume you are doign some kernel mode code?

Have you read?
http://h71000.www7.hp.com/doc/82final/6673/6673PRO.html
http://h71000.www7.hp.com/doc/82final/5601/5601PRO.HTML

and
http://h71000.www7.hp.com/openvms/integrity/resources.html

There are differences but how much it matters depends on your code. Read the above and try building your app on VMS I64.
____________________
Purely Personal Opinion
Volker Halle
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Archunan,

OpenVMS I64 and OpenVMS Alpha (since V8.2) are being built from the SAME sources. There are - of course - architecture specific differences, but most of the code is absolutely common.

In general, the advice is to first upgrade to the latest compilers on OpenVMS Alpha V8.2 and build your application. This makes sure, that your application builds with the latests compilers and you don't 'blame' OpenVMS I64, if something doesn't work.

Then take your sources to OpenVMS I64 and build them there. It should be easy. The feedback from the OpenVMS Itanium porting workshops is usually excellent.

You say your application includes MACRO-64 code, did you really write Alpha assembler instructions ? Couldn't this be MACRO-32 instead ? Which is the VAX MACRO-32 code and a compiler on both Alpha and I64 (invoked with MACRO/MIGRATE).

Volker.
Arch_Muthiah
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Ian Thanks.

Sorry for the incomplete info. Yes, my Belgium based customer wants to run our VMS security application both on Alpha/OpenVMS V7.3 and I64/OpenVMS V8.2.


Volker,
The initial MACRO source was in VAX MACRO 32, we have already ported to Alpha. Now we are using Marco64 to assemle those code.

I am really expecting the solutions/ suggestions from you members, I always trust as I belive you might have faced this type issues in your long ways.

Thanks
Archunan
Regards
Archie
Volker Halle
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Archunan,

re: MACRO-32/MACRO-64

Porting a VAX MACRO source file to Alpha and compiling it using $ MACRO/MIGRATE does not make it MACRO-64.

MACRO-64 is the native Alpha assembler and only very few (typically performance-critical) modules in OpenVMS Alpha are written in MACRO-64. I would not expect 'applications' to be so hardware-dependant, that you would have to use Alpha machine language.

Volker.

Arch_Muthiah
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Volker,

We have ported MACRO 32 to MACRO 64, we have done so much modification while porting to Alpha/OpenVMS. This part is OK.

Now as we are again moving the same application which is running fine in the ALPHA/OpenVMS to I64/openVMS.

You already said it won't require any modification in macro or RTL lib.

Although I64 and Alpha both are 64 bits platform, I curious to know that would I need to touch the sources for any modifications when I move the application to I64/OpenVMS 8.2. The conversion is Aplha/OpenVMS 8.2 to I64/OpenVMS 8.2.

You and Ian already assured that the Alpha/OpenVMS 8.2 code should work in I64/OpenVMS 8.2 if I have loaded all latest Libraries. May I take this as a final suggestion?


Archunan

Regards
Archie
Robert Gezelter
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Archunan,

As was already noted, MACRO-64 is direct written ALPHA instructions, not the case of MACRO-32 compiled using the MACRO-32 compiler to run on ALPHA. In the case of MACRO-32, the equivalent tool exists for IA-64.

Providing you are using no machine specific features (e.g., code that relies on the details of exception handing), you should have little or not problems simply recompiling the code. If you are using older compilers, it is strongly recommended that you recompile using current compilers on ALPHA (to remove language compatibility changes) before compiling it for IA-64.

- Bob Gezelter, http://www.rlgsc.com
Arch_Muthiah
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Bob/Volker/Ian,

I think I missed few info,

1. Our intial code was written for VAX using VAX MACRO32.

2. We have ported this MACRO 32 to Alpha/OpenVMS 8.2 after did so much modification.

3. So now we have two sources, one for VAX/OpenVMS (MACRO 32) and one for Alpha/OpenVMS8.2 (MACRO 64).

We are able to build and the application is running fine at this moment on Alpha and VAX.

But now we want to run this application on I64/OpenVMS 8.2.

As Bob said, if MACRO 64 source for Alpha is Alpha machine dependant, then I can not use this MACRO 64 source to be assembled on I64. Isn't it Bob?

You mean that it requires another porting work ?. That is porting VAX MACRO 32 source to I64/OpenVMS 8.2 using seperate I64 assembler?. So I should take VAX Macro 32 source as the base version? not MACRO 64 (alpha) source as the base version for porting to I64?.

Could you please clarify this?


Archunan
Regards
Archie
Robert Brooks_1
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

It's quite simple; there is no Macro-64 compiler for OpenVMS I64.

I can state with almost 100% certainty that
rewriting your application to use IAS is will be among the worst choices you could make.

OpenVMS I64 itself contains an awful lot of Macro-32 code that is simply compiled for I64 -- the shadowing driver, for example, ported from Alpha to I64 with only a single(!) change.

What, exactly, are you doing such that you think you need to use a very low-level language?

Does your application have intimate knowledge of the calling standard?

Also, you make reference to the calling of "system routines"? Are you referring to system services and/or RTL routines, or are you talking about routines that have an entry in sys$loadable_images:sys$base_image.exe -- these routines are prefixed with exe$, sch$, ioc$, etc . . .

Does any of your application operate at an IPL greater than 0?

-- Rob
John Gillings
Honored Contributor

Re: Are there any big changes between Alpha/OpenVMS and I64/OpenVMS

Archunan,

Sorry to belabour this point. MACRO64 is a VERY, VERY specialised assembler. I'm having trouble believing you'd be using it. You don't "port" MACRO32 code to MACRO64. They're very different languages.

Could you please post a few lines of code from your MACRO64 module, just to convince me that it's really MACRO64 and not MACRO32.

This is CRITICAL to your question. If it's MACRO32 then porting to IA64 is potentially just compile and go. If it's MACRO64 then you will need to rewrite it from scratch. Since there is no IA64 assembler, it will need to be written in C or MACRO32.
A crucible of informative mistakes