- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- FORTRAN Compile Link Error
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-17-2010 11:18 AM
тАО11-17-2010 11:18 AM
Re: FORTRAN Compile Link Error
I know it is handy to write it in a single concatenation of .or.s, and works in most cases.
The correct usage for integer oring is IOR(int1,int2).
The following is the correct integer ORing and does not need to have prvmsk defined as a 64 bit quantity, which has to be converted back into a 32bit quantity in the sys$... call.
VMS is little endian; on a big-endian system passing a 64bit integer to a routine expecting a 32bit integer would fail!
program test
include '($prvdef)'
integer sys$setprv
integer(kind=4) prvmsk
integer iret
prvmsk=IOR( prv$m_share,IOR(prv$m_tmpmbx,&
IOR(prv$m_sysprv,IOR(prv$m_syslck,&
IOR(prv$m_world,IOR(prv$m_netmbx,IOR(prv$m_cmkrnl,&
IOR(prv$m_detach,prv$m_bypass))))))))
print *, prvmsk
iret = sys$setprv ( %val(1), prvmsk, , )
call exit(iret)
end
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-17-2010 11:41 AM
тАО11-17-2010 11:41 AM
Re: FORTRAN Compile Link Error
Thanks for the reminder.
The (Alpha) compiler likes that.
>> does not need to have prvmsk defined as a 64 bit quantity, which has to be converted back into a 32bit quantity in the sys$... call.
The prvmsk is actually a 64 bit structure.
Hein
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-17-2010 01:00 PM
тАО11-17-2010 01:00 PM
Re: FORTRAN Compile Link Error
Ah sorry, I overlooked that!
And the way $PRVDEF defines the PRV$M_* values
for bits above bit 31 ('00000000'X) will not work for .OR. or IOR(), at least in my 7.3-1 system, only the IBSET() method works correct:
e.g.
integer(kind=8) prvmsk
prvmsk=IOR(prv$m_security,prvmsk) does not change prvmsk.
The attached program prints the result.
Is this corrected in newer versions ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-17-2010 01:14 PM
тАО11-17-2010 01:14 PM
Re: FORTRAN Compile Link Error
is
run test_priv
F0110021
70110021
F0110021
F0118021
40F0118021
40F0118021
i.e. the 40xxxxxxxx for SECURITY is not set with .OR.prv$M_security or IOR(prv$M_security,prvmsk), only with IBSET.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-17-2010 01:28 PM
тАО11-17-2010 01:28 PM
Re: FORTRAN Compile Link Error
Each bit has a symbolic name. The $PRVDEF macro defines these names. You form the bit vector by specifying the symbolic name of each desired privilege in a logical OR operation. The following table provides the symbolic name and description of each privilege:
And the table then lists the high order bits as PRV$V_mumble.
But of course one can not OR those.
So MJ26, take care in Your program not to use those privileges or switch from OR to IBSET !
- « Previous
-
- 1
- 2
- Next »