![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: Dear Wizard, I am converting some Macro code from VAX to Alpha. The following compilation errors are the last that I need to resolve. I've already resolved many other STORCODLAB and DATINCODE errors but these appear to be different. Can you please tell me what I need to do to correct the following code for AXP? Regards, Pete Dunkin. ------------------------------------------------ In ENVMISFUN.MAR $IMGACT_S NAME=NAMDSC,- DFLNAM=DEFDSC,- IMGCTL=#<IAC$M_MERGE!IAC$M_EXPREG>,- HDRBUF=(R6),- INADR=START_VA,- RETADR=G^ENV_TRACE_VA gives the following compilation error:- RETADR=G^ENV_TRACE_VA %AMAC-E-STORCODLAB, stored code labels must be declared entry points in routine DEFDSC at line number 401 in file SPARE2:[A21B.SRC.XBC.WRK]ENVMISFUN.MAR;20 ------------------------------------------------ In ENVSCHED.MAR CMPL R0, #ss$_exquota BNEQ 25$ $CANEXH $EXIT ss$_exquota 25$: gives the following compilation errors:- $CANEXH %AMAC-E-DATINCODE, data in code stream at line number 864 in file SPARE2:[A21B.SRC.XBC.WRK]ENVSCHED.MAR;52 $EXIT ss$_exquota %AMAC-E-DATINCODE, data in code stream at line number 865 in file SPARE2:[A21B.SRC.XBC.WRK]ENVSCHED.MAR;52 ------------------------------------------------ The Answer is : ; The OpenVMS Wizard would encourage moving to a ; higher-level language as feasible, and to reduce ; the quanity of Macro32 code in use. ; The $imgact and $imgfix image activation system ; services are not documented nor supported; please ; use the supported lib$find_image_symbol interface, ; or C functions such as dlopen() and friends. ; --- ; STORCODLAB, stored code labels must be declared entry ; points in routine 'routine-descriptor' ; Facility: AMAC, MACRO-32 Compiler for OpenVMS Alpha ; Explanation: An instruction such as MOVAx or PUSHAx ; that is used to store the address of a ; code label is not declared as an entry ; point. ; User Action: Add the appropriate entry declaration, ; either .JSB_ENTRY, or .JSB32_ENTRY, or ; .CALL_ENTRY. ; --- ; DATINCODE, data in code stream ; Facility: AMAC, MACRO-32 Compiler for OpenVMS Alpha ; Explanation: Data was found in the code stream. This ; condition is not allowed on OpenVMS Alpha ; systems. ; User Action: For implicit JSB parameters, pass the ; parameter value in a register. If any values ; are larger than a longword, put them in ; another program section (psect) and ; explicitly pass its address. ; For data contiguous with code in the code ; stream, rewrite the code so that the data ; is in a data program section. ; --- .library 'sys$library:starlet.mlb' .psect data,noexe,wrt $ssdef .psect code,exe,nowrt .call_entry Label=start,preserve=<> $CANEXH_S $EXIT_S code=#ss$_exquota .end start ; ---
|