<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to statically  link C run-time  libraries? in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6098235#M37178</link>
    <description>&lt;P&gt;&amp;gt;OpenVMS is not Unix, Unix is not OpenVMS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Huh?&amp;nbsp; HP-UX behaves the same way.&amp;nbsp; It is forward compatible only.&lt;/P&gt;&lt;P&gt;And for Integrity, the system libs only come in shared form, not archive, so you can't do that.&lt;/P&gt;&lt;P&gt;And even if you could link with archive libs, if they use a new system call, you'll get SIGSYS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There does appear to be one improvement under OpenVMS, there is a specific error message.&lt;/P&gt;&lt;P&gt;Whereas under HP-UX, it is good luck if you can figure this out.&lt;/P&gt;</description>
    <pubDate>Tue, 11 Jun 2013 06:29:57 GMT</pubDate>
    <dc:creator>Dennis Handly</dc:creator>
    <dc:date>2013-06-11T06:29:57Z</dc:date>
    <item>
      <title>How to statically  link C run-time  libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096147#M37158</link>
      <description>&lt;P&gt;Please let me know how&amp;nbsp; statically link sharable (i.e. CXXL$LANGRTL, DECC$SHR, LBRSHR, LIBRTL etc)&amp;nbsp; with executable.&lt;/P&gt;&lt;P&gt;To avoid problems like “-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image”.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried like&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$ LINK/NOSYSSHARE abc,SYS$SHARE:IMAGELIB.OLB/INCLUDE=(CXXL$LANGRTL,DECC$SHR,LBRSHR,LIBRTL),SYS$SHARE:STARLET.OLB/INCLUDE=(CMA$TIS,,CMA$TIS_VEC)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Jun 2013 12:41:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096147#M37158</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-08T12:41:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically  link C run-time  libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096157#M37159</link>
      <description />
      <pubDate>Sat, 08 Jun 2013 14:06:25 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096157#M37159</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2013-06-08T14:06:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically  link C run-time  libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096165#M37160</link>
      <description>&lt;P&gt;I'm a little bit surprised. I would have expected a reply like "Not a very detailed description of anything." :-)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The previous reply mentioned that you can not statically link a shareable image, aka shared library.&amp;nbsp;Usually you can statically link with object libraries. However the file type .OLB is inconsistantly used by VMS.&amp;nbsp;IMAGELIB.OLB is not the object library of modules which make up the shareable images, it is a library of shareable images.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/SYSSHR (default) resolves from all known shareable images, known in the sense that they are elements of the IMAGELIB.OLB (not real elements, but that's not important, here). &amp;nbsp;/NOSYSSHR is the qualifier you want to try. &amp;nbsp;But your command says "no" to known shareable images but includes shareable images from IMAGELIB: this will not work as expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Check out what's in SYS$SHARE: "$ dir sys$share:.olb". You should be able to link your object modules with the object libraries like DECC$CRTL.OLB, LIBCXXSTD.OLB, &amp;nbsp;etc. As far as I remember, you may not find all of these libraries on all platforms.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;STARLET.OLB is default, except you exclude resolving from it with /NOSYSLIB. As with all libraries, you shouldn't need to /INCLUDE anything, when resolving undefined symbols, what I think you want to do.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also depending on the platform, you don't need to use CXXLINK: on I64 it is provided just for convenience, because you had to use it on Alpha and you may want to use the same commands/procedures/makefiles.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, a static link with objects can avoid a&amp;nbsp;SHRIDMISMAT&amp;nbsp;at image activation time. Usually this is only a problem if you link a main image with features/functions in a new shareable image and want to run the main image on VMS systems with an old version of that shareable image. If you don't need the new feature, you may want to link with the old version of that shareable image (on the target system or with a copy from the target system; logical names are your friends). But what do I know what your actual problem is and what you are trying to accomplish.&lt;/P&gt;</description>
      <pubDate>Sat, 08 Jun 2013 14:49:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096165#M37160</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2013-06-08T14:49:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically  link C run-time  libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096693#M37161</link>
      <description>&lt;P&gt;Typically SHRIDMISMAT will only occur if you attempt to execute an image on a system with an OpenVMS version earlier than the one on which the image was linked.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The best strategy to avoid this is to link your program on the earliest version of OpenVMS that you&amp;nbsp;want&amp;nbsp;to support, or ship object code and have the installation procedure link the image on the target system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Even if you can find object code to replace all your shareable images, linking against object code might not work, because you can't link system services or other protected shareable images as object code (the privileged shareable image mechanism is required to do the necessary mode changes to get into privileged&amp;nbsp;modes needed to do system service type&amp;nbsp;stuff).&amp;nbsp;If any of your object code is dependent on later incarnations of system services,&amp;nbsp;you won't be able to move your&amp;nbsp;images to earlier versions of OpenVMS. You'll get a different error, but essentially the same issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you don't have an OpenVMS&amp;nbsp;system running the earliest version you want to run on, it's possible to create a link environment using copies of all the shareable images you depend from the eralier version on and defining logical names to point to them just before linking. Once you've linked against the earlier versions, your image should run without error against later versions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If none of that makes sense, please fill in details of where you're experienceing this problem. What version was the program linked on, and where are you trying to run it?&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 02:23:51 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096693#M37161</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2013-06-10T02:23:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096855#M37162</link>
      <description>&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am still not clear about your suggestion. Sorry, I couldn't understand it completely.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My problem is: I am having an application built on IA64 Version V8.4. But the customer system is having Version V8.3.&lt;/P&gt;&lt;P&gt;In the customer system there are no C/C++ Run-times&amp;nbsp;(C/C++ compiler )&amp;nbsp;&amp;nbsp;installed. So I can't compile my program there. In the customer system getting SHRIDMISMAT&amp;nbsp;at image activation time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To avoid this problem I want to statically link all the required shareable images for running the application.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please advise.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 05:21:07 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6096855#M37162</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T05:21:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097107#M37163</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; I am still not clear about your suggestion.&lt;/P&gt;&lt;P&gt;and you are still not clear about the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So this is for VMS on Integrity. There is no OLB for the C run-time library on the system, no matter whether the compiler is installed or not. On the system I checked there is a C compiler installed, but no C++ compiler. So I can't check whether the C++ compiler supplies some OLBs, but I&amp;nbsp; would assume it doesn't. However there are shareable image for C and C++ on the system, they come with the OS. That is, you don't need to have a compiler installed to link your C/C++ object modules on the target system. Just compile the sources, copy them to the target system and link there. This should work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; But the customer system is having Version V8.3.&lt;/P&gt;&lt;P&gt;Although unrelated to your problem, I think HP recommended to upgrade to V8.3-1H1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; In the customer system getting SHRIDMISMAT&amp;nbsp;at image activation time.&lt;/P&gt;&lt;P&gt;It would be good to see some actual output, here. The GSMATCH for the C run-time library on 8.4 is 1,1. It can't be lower on previous systems. Same for CXXL$011_SHR.EXE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ask Google to find SHIML (SHareable IMage dependency List) for I64. This tool will show you all shareable images with requested and actual match control (GSMATCH) also taking logical names into account.&amp;nbsp; Run it on your develoment system and on the target system. It statically checks your executable and will show where the SHRIDMISMAT comes from.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 07:22:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097107#M37163</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2013-06-10T07:22:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097127#M37164</link>
      <description>&lt;P&gt;Thanks for the suggestion.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I don't want to link the application on the customer system for various reasons. I think it is not a feasible solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want my application executable should contain all the required sharable images and run accross all the version of IA64&lt;/P&gt;&lt;P&gt;without any re-compile or re-link.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For this could you please suggest what are the compile/link options I should use.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 07:36:12 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097127#M37164</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T07:36:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097239#M37165</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; For this could you please suggest what are the compile/link options I should use.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Without knowing some details the answer can only be generic.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding compiation: there is nothing you have to do. Regarding linking: the only option seems to link against the shareable images of the target system(s).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That is, you need the shareable images which cause the SHRIDMISMAT. (That includes, you need to identify these images and from what you disclosed so far, it isn't obvious which shareable images that are.) The "target system" is one with the lowest VMS version you want your application to run on. If your build environment is on a higher VMS version you have to have a local copy of these shareable images. You have to set up logical names to point to these copies at link time. The resulting executable image will have the reference to the shareable image in it together with the match control (GSMATCH) of the local copy.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's all you need. Image activation with the system supplied shareable images (not your local copies) will succeed on old and current VMS versions (and likely on future ones, so there will be any). So you have to ship just your application image, nothing else.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 09:10:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097239#M37165</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2013-06-10T09:10:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097259#M37166</link>
      <description>&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Getting error with the sharable CXXL$LANGRTL.EXE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%DCL-W-ACTIMAGE, error activating image CXXL$LANGRTL -CLI-E-IMGNAME, image file NODE1$DKA0:[SYS0.SYSCOMMON.][SYSLIB]CXXL$LANGRTL.EXE&lt;BR /&gt;-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please let me know how to&amp;nbsp; set logical names to point to this sharable&amp;nbsp; at link time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 09:43:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097259#M37166</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T09:43:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097345#M37167</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; Could you please let me know how to&amp;nbsp; set logical names to point to this sharable&amp;nbsp; at link time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$ define /user CXXL$LANGRTL your$disk:[your.directory]your-CXXL$LANGRTL&lt;/P&gt;&lt;P&gt;$ link ...&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 11:39:00 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097345#M37167</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2013-06-10T11:39:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097415#M37168</link>
      <description>&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After defining this logical&amp;nbsp;I hoped&amp;nbsp;&amp;nbsp;CXXL$LANGRTL will be statically linked to the application executable.&lt;/P&gt;&lt;P&gt;If it is statically linked then the size of the executable will be increased in size.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But I didn't see any increase in size of the executable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please advise.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 12:51:37 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097415#M37168</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T12:51:37Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097611#M37169</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;After defining this logical&amp;nbsp;I hoped&amp;nbsp;&amp;nbsp;CXXL$LANGRTL will be statically linked to the application executable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You defined a logical name pointing to a shareable image, using the pointed to shareable image and no longer the shareable image from IMAGELIB for linking your executable image. That's all. There are still shareable images involved. So nothing changed in the size of the image, nothing really changed in the image other than the GSMATCH of that shareable image, which is now the GSMATCH&amp;nbsp;of your local copy, which should be the one from the target system.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You may want to read the fine manual to get a detailed understanding on how the VMS linker works.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 15:42:32 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097611#M37169</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2013-06-10T15:42:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097631#M37170</link>
      <description>&lt;P&gt;Can you tell me one thing, &amp;nbsp;Is it possible to link sharable images statically ?&lt;/P&gt;&lt;P&gt;If yes how to do it.(i.e. with commands).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 15:55:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097631#M37170</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T15:55:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097655#M37171</link>
      <description>&lt;P&gt;Is there anyone understand the problem I have mentioned? If yes, please let me know the solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think the problem is simple. The issue is, whether it is possible or not ? If possible let me know the command.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 16:07:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097655#M37171</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T16:07:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097689#M37172</link>
      <description>Does anyone understnad your question? Yes.&lt;BR /&gt;&lt;BR /&gt;The answer to the question is NO. You can not end up with a static copy of the shareable image. If you get right down to it, what you are asking defeats the purpose of the shareable image.&lt;BR /&gt;&lt;BR /&gt;Proper use of the shareable images should allow you to generate an image that is compatible with all of the versions you support. You should link on the oldest version. OpenVMS has been the leader in compatability of images. I personally have executable images linked on V1.5 of OpenVMS(VAX) that run under OpenVMS V6 without any problems.&lt;BR /&gt;&lt;BR /&gt;Rather than try to create a standalone image, perhaps you can better describe why you want to go down this path. What is the problem you are trying to solve with this attempt?&lt;BR /&gt;&lt;BR /&gt;Dan</description>
      <pubDate>Mon, 10 Jun 2013 16:41:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097689#M37172</guid>
      <dc:creator>abrsvc</dc:creator>
      <dc:date>2013-06-10T16:41:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097727#M37173</link>
      <description>&lt;P&gt;Thanks for your crisp and straight answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a build system with the newer version of IA64. Where as the custmer is having older version of openVMS IA64.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;when ever my application is initiated getting an error as&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%DCL-W-ACTIMAGE, error activating image CXXL$LANGRTL -CLI-E-IMGNAME, image file NODE1$DKA0:[SYS0.SYSCOMMON.][SYSLIB]CXXL$LANGRTL.EXE&lt;BR /&gt;-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To avoid this problem I wanted to statically link the sharable libraries.&lt;/P&gt;&lt;P&gt;I don't have any&amp;nbsp;&amp;nbsp;of the oldest version.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please advise.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 16:58:31 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097727#M37173</guid>
      <dc:creator>allin-in-one</dc:creator>
      <dc:date>2013-06-10T16:58:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097765#M37174</link>
      <description>An alternative is to provide an installation kit that contains the object modules along with a link command to generate an executable image.&lt;BR /&gt;&lt;BR /&gt;Unfortunately, it is a bit dangerous to "trust" an older version without testing. I would think that it is even more dangerous to run a new image, however created, on an older OS. If there are "new features" or bugs fixed in the newer version, it could be invisible to a typical program or the "old" way might be acceptable and consistant in behavior. I would never want to run code built on a newer version of an OS on an older one. The exception to this is the environment where the "old" system is made available to the new one. For example: Linking on V8.4 with pointers to V8.3 shareable images.&lt;BR /&gt;&lt;BR /&gt;Dan</description>
      <pubDate>Mon, 10 Jun 2013 17:13:22 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097765#M37174</guid>
      <dc:creator>abrsvc</dc:creator>
      <dc:date>2013-06-10T17:13:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097773#M37175</link>
      <description>&lt;P&gt;&amp;gt;To avoid this problem I wanted to statically link the sharable libraries.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As has been mentioned, this is a contradiction in terms.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;I don't have any&amp;nbsp;&amp;nbsp;of the oldest version.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then you won't be successful.&amp;nbsp; Newer bits aren't likely to run on older systems.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 17:16:13 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097773#M37175</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2013-06-10T17:16:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically link C run-time libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097961#M37176</link>
      <description>&lt;P&gt;You can't statically link .OLB files that are for shareable images (i.e. contain lists of entry points).&amp;nbsp; These are completely different to .OLB files that contain .OBJ code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What you can do is define logical names that match the names of shareable images.&amp;nbsp; The&amp;nbsp;image activator will look for a logical name before it looks for a file with specification SYS$SHARE:xxxxx.EXE, hence careful use of logical names can ensure that non-standard shareable are used (i.e. shareable&amp;nbsp;images that don't reside in SYS$SHARE).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In your case you would need to have copies of a different version of the various C shareable images in some other directory and have logical names point to those.&amp;nbsp; Those logical names&amp;nbsp;cannot be defined at /SYSTEM level&amp;nbsp;because this would mean that programs apart from yours would&amp;nbsp;access them. The advantage of this technique is that&amp;nbsp;upgrades to OpenVMS&amp;nbsp;might apply changes to the files in SYS$SHARE but would not touch the shareables in a different directory.&amp;nbsp; The disadvantage is that you would not get the benefit of any enhancements that the upgrade provided.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Personally I'm not convinced that your understanding of OpenVMS is sufficient for you to be working with something so technically complex, so try it at your own risk.&amp;nbsp; I wonder why the&amp;nbsp;work was undertaken when such a vital&amp;nbsp;issue was unresolved.&amp;nbsp;&amp;nbsp;Did you just think "someone on the forum will tell me what to do"?&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2013 22:48:49 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6097961#M37176</guid>
      <dc:creator>John McL</dc:creator>
      <dc:date>2013-06-10T22:48:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to statically  link C run-time  libraries .</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6098025#M37177</link>
      <description>&lt;P&gt;Stepping back a bit, I think we need some clarification&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OpenVMS is built to preserve UPWARDS compatibility of user mode executable images. That means if you link your program on version X of OpenVMS, it will execute without relinking on all future versions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, BACKWARDS compatibility is NOT guaranteed, and will often fail. So, an image linked on&amp;nbsp;version X of OpenVMS will typically NOT execute on lower versions. The Operating System is deliberately setup so the image won't even attempt&amp;nbsp;to execute. It will fail immediately&amp;nbsp;with SHRIDMISMAT or one of a few other similar conditions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Although there are&amp;nbsp;some tricks to hacking around this deliberate design feature, the bottom line is, an image&amp;nbsp;MUST be linked&amp;nbsp;against the lowest version of&amp;nbsp;OpenVMS on which you want it to run.&amp;nbsp;The reason you can't figure out how to do what you think of as a "static link" is that it wouldn't work even if it were possible. That's just the way OpenVMS works.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; I don't want to link the application on the customer system for various reasons. I think it is not a feasible solution&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What you &lt;STRONG&gt;&lt;EM&gt;want&lt;/EM&gt;&lt;/STRONG&gt; doesn't really enter into it. If you need your image&amp;nbsp;to run on V8.3, you have to link it on V8.3 (either actual or simulated). Regardless of the presence or absence&amp;nbsp;of compilers, you can always LINK on any OpenVMS system, so that is the simplest and most robust solution to the issue you've presented. Instead of distributing the executable images, distribute your object code and a link procedure.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you really insist on bringing the mountain to Mahommad, you might be able to copy large chunks of the V8.3 Run Time Libraries onto your V8.4 system and change your build procedure to link against V8.3 RTLs, but unless you really understand how the&amp;nbsp;OpenVMS linker works (and the fact that you're asking this question at all is evidence that you do not),&amp;nbsp;you will almost certainly fail. This forum is not suitable&amp;nbsp;for coaching you on which parts of the RTL you need, as it would require detailed analysis of your code (learn to read a MAP file, see&amp;nbsp;HELP LINK/MAP with /FULL). As well as being tricky to get right,&amp;nbsp;it's not supported, so not the kind of thing responsible people would recommend for production code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Another supported alternative -&amp;nbsp;build yourself a V8.3 system disk. When you're ready to do a distribution build for this customer, shutdown your V8.4 system, boot from the V8.3 system disk, do your link, then shutdown and reboot to V8.4.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OpenVMS is not Unix, Unix is not OpenVMS. Insisting that one behave like the other is a path to frustration and failure.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2013 01:44:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/how-to-statically-link-c-run-time-libraries/m-p/6098025#M37177</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2013-06-11T01:44:48Z</dc:date>
    </item>
  </channel>
</rss>

