![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: I have created a shareable library and created images that call it. I have been unable to get my applications to call my shareable library in a location other than "sys$library". On Unix I am able to specify "LD_LIBRARY_PATH" and place my shared library w here this logical points to. This way my product can exist in an area that does not require the user to get permission to place the shared library in the protected system area. What is the equivalent OpenVMS convention. I tried to add my specific area to the searchlist for "sys$library" by executing the following command but the images did not look at this area, "$define/system/exec sys$library dka0:[user.bin],SYS$SYSROOT:[SYSLIB]". The Answer is : Use a logical name that matches the file name of the shareable image, the image activator will use that to look for the target shareable image file. Many OpenVMS functions use the RMS capabilities for the specification of the file name and the default name separately, such as: uaf = f$parse("SYSUAF","SYS$SYSTEM:.DAT") rather than the more immediately obvious (and rather less flexible): uaf = f$parse("SYS$SYSTEM:SYSUAF.DAT") Please see the discussion of shareable images referenced in the OpenVMS Frequently Asked Questions (FAQ), particularly around the need to have the logical name(s) defined in a privileged mode and privileged tables when the redirection of privileged images is involved. NB: The default directories for shareable images are SYS$SHARE: and not SYS$LIBRARY: -- though the two logical names happen to reference the same directories on current OpenVMS systems. Adding translations to SYS$LIBRARY is not recommended.
|