Operating System - OpenVMS

Re: Madgoat Watcher

 
SOLVED
Go to solution
Craig A Berry
Honored Contributor

Re: Madgoat Watcher

I executed the commands Hoff posted. Both emitted a large number of warnings and informational messages. The warnings were about illegal register numbers like so:


JSB ( REGISTER = 2, ! rsn
...........................^
%BLS32-W-TEXT, Illegal register number 2 in LINKAGE declaration
at line number 102486 in file SYS$COMMON:[SYSLIB]LIB.REQ;1

and the informational messages were, as far as I could see, all about numeric literal overflow like so:


literal VA$M_VRNX = %X'F000000000000000';
......................^
%BLS32-I-TEXT, Numeric literal overflow
at line number 22858 in file SYS$COMMON:[SYSLIB]STARLET.REQ;1

I attempted to build Watcher again anyway, but now I don't even get as far as I did before:


$ BLISS/OBJECT=[-.BIN-IA64]DECW_DISPLAY.OBJ DECW_DISPLAY.B32

LIBRARY 'SYS$LIBRARY:LIB';
.............................^
%BLS32-W-TEXT, Warnings issued during LIBRARY precompilation: 263
at line number 58 in file D0:[craig.WATCHER.source]decw_display.b32;1

Luckily I can easily get back to where I was by simply deleting the .L32 files in SYS$LIBRARY that I just created. So, no forward progress yet, but no backward either.
Craig A Berry
Honored Contributor

Re: Madgoat Watcher

Finally read all the way to the *end* of the BLISS release notes, which is where it tells you how to install the package containing the release notes. The gist of it is that I think the incantation Hoff was recommending should be unnecessary because the installation now does that, and if it is necessary, some of the details have changed:



CHAPTER 5

HOW TO INSTALL THE COMPILERS

5.1 Installing the compilers on OpenVMS

This is a PCSI kit. See the appropriate PCSI documentation for
information on how to install it.

5.2 Building the Starlet and Lib .L32 and .L64 libraries

As part of the PCSI installation the Starlet and Lib .L32 and .L64

libraries will be built and placed in SYS$LIBRARY by default. If you
chose not to have the installation build these files and wish to build
them by hand yourself, below are the commands required to do so:

$bliss/i32/terminal=noerrors/lib=sys$common:[syslib]:starlet.l32 sys$library:starlet.req
$bliss/i32/terminal=noerrors/alpha_register_mapping/lib=sys$common:[syslib]:lib.l32 sys$library:lib.req
$bliss/i64/lib=sys$common:[syslib]:starlet.l64 sys$library:starlet.r64
$bliss/i64/alpha_register_mapping/lib=sys$common:[syslib]:lib.l64 sys$library:lib.r64

You will need to be logged into an account with system privileges to
successfuly write the files to SYS$LIBRARY.


or, to mimic exactly what the installer does, use the procedure the installer uses (substituting sys$common for pcsi$destination):

$ product extract file/select=BLISSI64$LIBINSTAL.COM blissi64/version=1.12-72

$ type BLISSI64$LIBINSTAL.COM
$! Copyright 2003 Hewlett-Packard Company
$!
$! Builds the Bliss system libraries
$!
$! Turn off errors to the terminal because building starlet and lib
$! with BLISS32 will cause lots of informational overflow messages
$! which are entirely normal.
$!
$ bliss/i32/terminal=noerrors/lib=pcsi$destination:[syslib]starlet.l32 sys$library:starlet.req
$
bliss/i32/terminal=noerrors/alpha_register_mapping/lib=pcsi$destination:[syslib]lib.l32 -
sys$library:starlet.req+sys$library:lib.req
$ bliss/i64/lib=pcsi$destination:[syslib]starlet.l64 sys$library:starlet.r64
$ bliss/i64/alpha_register_mapping/lib=pcsi$destination:[syslib]lib.l64 sys$library:starlet.r64+sys$library:lib.r64
$ exit $status


So far that;s just BLISS basics. On to struggling with the Watcher sources.

Craig A Berry
Honored Contributor

Re: Madgoat Watcher

I think I fixed it. I had to do this to complete the set-up of my BLISS environment:

$ BLISS/I32/TERMINAL=NOERRORS/LIB=SYS$LIBRARY:TPAMAC.L32 SYS$LIBRARY:TPAMAC.REQ

And I had to add the /ALPHA_REGISTER_MAPPING option when compiling DECW_DISPLAY.B32 and PERFORM_DISCONNECT.B32.

I discovered that the switch from LIB$TPARSE to LIB$TABLE_PARSE had already been made via macros like:

%IF %BLISS (BLISS32E) OR %BLISS (BLISS32I) %THEN
MACRO LIB$TPARSE = LIB$TABLE_PARSE%;
%FI

which means just use LIB$TABLE_PARSE as a drop-in replacement for LIB$TPARSE. I think that mostly works *except* when creating user action routines, and Watcher makes extensive use of a user-action routine called CVT_ASCTOID_STORE to process UICs. According to the docs at:

http://h71000.www7.hp.com/doc/82final/5932/5932pro_050.html#tp_sec_3_1

LIB$TPARSE has the VAX-like expectation that the action routine can just process arguments as offsets from the argument pointer, but "LIB$TABLE_PARSE uses the standard calling mechanism and passes the argument block, by reference, as the only argument to the action routine."

Watcher very cleverly has a TPA_ROUTINE macro which does both types of argument handling. BUT it was not using the correct option on Itanium. I made the following change:

$ diff [.source]wcp.r32
************
File D0:[craig.WATCHER.source]wcp.r32;2
88 %IF %BLISS(BLISS32E) OR %BLISS(BLISS32I) %THEN
89 %IF NOT %DECLARED (TPA_ARGCNT) %THEN
******
File D0:[craig.WATCHER.source]wcp.r32;1
88 %IF %BLISS(BLISS32E) %THEN
89 %IF NOT %DECLARED (TPA_ARGCNT) %THEN
************

Number of difference sections found: 1
Number of difference records found: 1

DIFFERENCES /MERGED=1-
D0:[craig.WATCHER.source]wcp.r32;2-
D0:[craig.WATCHER.source]wcp.r32;1

Then I recompiled and appear to be in business:

$ wcp/nofile
WCP> exclude system
WCP> show exclude

Exclude records:

Username: SYSTEM, UIC: [*,*]
Device: *, Port name: *
Running image: *
Times: MONDAY:(0-23),TUESDAY:(0-23),WEDNESDAY:(0-23),THURSDAY:(0-23),FRIDAY:(0-23),SATURDAY:(0-23),SUNDAY:(0-23)

WCP> exclude */uic=[1,*]
WCP> show exclude

Exclude records:

Username: SYSTEM, UIC: [*,*]
Device: *, Port name: *
Running image: *
Times: MONDAY:(0-23),TUESDAY:(0-23),WEDNESDAY:(0-23),THURSDAY:(0-23),FRIDAY:(0-23),SATURDAY:(0-23),SUNDAY:(0-23)

Username: *, UIC: [1,*]
Device: *, Port name: *
Running image: *
Times: MONDAY:(0-23),TUESDAY:(0-23),WEDNESDAY:(0-23),THURSDAY:(0-23),FRIDAY:(0-23),SATURDAY:(0-23),SUNDAY:(0-23)

WCP>

It seems to be handling UICs correctly now. I have not (yet) tested whether the exclusions are handled properly, but I suspect they will be. New Itanium images only (not complete kits) are attached. Use with caution until more testing has been done.

I will try to get the attention of someone who can release a new kit.

James T Horn
Frequent Advisor

Re: Madgoat Watcher

I am running the new versions on our development system and if all works will should start the new changes on our production system tomorrow.
Craig A Berry
Honored Contributor

Re: Madgoat Watcher

Looks like exclusions are now working correctly on our test system. I haven't tested overrides but they use the same logic.

I've been in touch with Tim Sneddon off-forum and he plans to release a new version with my change soonish and also has other changes in the works. If I hear of a release that hasn't already been posted, I'll try to remember to add details here.
James T Horn
Frequent Advisor

Re: Madgoat Watcher

Test testing on the development server and changes worked. Implemented on production server and is working great. Thank you for all the assistance.

Re: Madgoat Watcher

Maybe you could email the solution to Hunter Goatley? The V4.0 he is distributing is not working. I had some email contact with him about Watcher.
Anybody knows if WATCHER handles ACMS users correctly?

 

Resistance is not an option.
Hunter Goatley
Advisor

Re: Madgoat Watcher

Thanks to Bart and Craig, I have updated my distribution of WATCHER to include this fix.  I also modified the DESCRIP.MMS and LINK.COM so they actually work for Alpha and I64.

 

I have numbered my update WATCHER V4.1.

 

ftp://ftp.process.com/vms-freeware/fileserv/watcher.zip

 

Hunter