<?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: IA64 in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713362#M40746</link>
    <description>You indicate that this macro code was written on the Alpha.  If the code is Macro64, tehn it will need to be re-written.  Post a snippet here and we shouldbe able to guide you.&lt;BR /&gt;&lt;BR /&gt;Dan</description>
    <pubDate>Mon, 15 Nov 2010 15:46:55 GMT</pubDate>
    <dc:creator>abrsvc</dc:creator>
    <dc:date>2010-11-15T15:46:55Z</dc:date>
    <item>
      <title>IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713360#M40744</link>
      <description>Does anyone know of any good .pdf's or websites that explain Vector Tables and how to program with them?   I have a macro that was written on Alpha, and will not port over to IA64 successfully.  I am looking around the web, and cannot find too many helpful readings.  We can rewrite the MACRO if necessary in FORTRAN or in C (if thats possible).  Thanks!</description>
      <pubDate>Mon, 15 Nov 2010 12:57:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713360#M40744</guid>
      <dc:creator>MJ26</dc:creator>
      <dc:date>2010-11-15T12:57:50Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713361#M40745</link>
      <description>I'm going to make assumptions and guesses around your intended question, and around just what you mean by "vector table" here, and presume that this is a question on porting a Macro32 shareable image transfer vector module from OpenVMS VAX over to the mechanisms used on OpenVMS Alpha and OpenVMS I64.  If so, then start reading here:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://labs.hoffmanlabs.com/node/163" target="_blank"&gt;http://labs.hoffmanlabs.com/node/163&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;If that's not the particular "vector table" you're referring to, then please post a hunk of the Macro32 code involved; some additional background, context, and a reproducer.&lt;BR /&gt;</description>
      <pubDate>Mon, 15 Nov 2010 14:59:32 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713361#M40745</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2010-11-15T14:59:32Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713362#M40746</link>
      <description>You indicate that this macro code was written on the Alpha.  If the code is Macro64, tehn it will need to be re-written.  Post a snippet here and we shouldbe able to guide you.&lt;BR /&gt;&lt;BR /&gt;Dan</description>
      <pubDate>Mon, 15 Nov 2010 15:46:55 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713362#M40746</guid>
      <dc:creator>abrsvc</dc:creator>
      <dc:date>2010-11-15T15:46:55Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713363#M40747</link>
      <description>$TY PAALGI_VECTOR.MAR  &lt;BR /&gt;        .title  lgi$loginout_callouts - data transfer vector holder definition&lt;BR /&gt;        .ident /v1.4/&lt;BR /&gt;&lt;BR /&gt;lgi$loginout_callouts::&lt;BR /&gt;&lt;BR /&gt;        .long           9&lt;BR /&gt;        .address        paalgi_init&lt;BR /&gt;        .long           0&lt;BR /&gt;        .address        paalgi_decwinit&lt;BR /&gt;        .address        paalgi_identify&lt;BR /&gt;        .address        paalgi_authenticate&lt;BR /&gt;        .long           0&lt;BR /&gt;        .long           0&lt;BR /&gt;        .address        paalgi_logout&lt;BR /&gt;        .long           0&lt;BR /&gt;&lt;BR /&gt;        .end</description>
      <pubDate>Mon, 15 Nov 2010 17:36:39 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713363#M40747</guid>
      <dc:creator>MJ26</dc:creator>
      <dc:date>2010-11-15T17:36:39Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713364#M40748</link>
      <description>Ah, OK.  &lt;BR /&gt;&lt;BR /&gt;So you need help declaring a VMS data structure.&lt;BR /&gt;&lt;BR /&gt;For this case, I'd probably use the declarations that are present in LGIDEF, but that's your call.&lt;BR /&gt;&lt;BR /&gt;Here's the data structure definition you're working with:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://h71000.www7.hp.com/doc/731final/4493/4493pro_038.html" target="_blank"&gt;http://h71000.www7.hp.com/doc/731final/4493/4493pro_038.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;The necessary declarations are present in Macro32 library, in the Bliss library, and in the C library.  Probably in various other language definition libraries, too.&lt;BR /&gt;&lt;BR /&gt;Here's how to get a look at the C struct declaration:&lt;BR /&gt;&lt;BR /&gt;$ lib sys$share:sys$lib_c.tlb/extr=LGIDEF/out=lgidef.h&lt;BR /&gt;&lt;BR /&gt;Here's an introduction to C programming on VMS, and which includes a discussion of SYS$LIB_C.TLB:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://labs.hoffmanlabs.com/node/273" target="_blank"&gt;http://labs.hoffmanlabs.com/node/273&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Whomever coded that Macro32 module didn't do it using the system declarations (no big deal); that'd normally be a block buffer declaration (.blkb, probably) and then the Macro32 symbolic offsets from LGIDEF module.  (There's no macro declaration, so what was done with that Macro32 code is functional.)&lt;BR /&gt;&lt;BR /&gt;To that end, there are examples of referring to the *DEF modules in various Macro32 examples, including here:&lt;BR /&gt;&lt;BR /&gt;SYS$EXAMPLES:LAT$RATING_DPT.MAR&lt;BR /&gt;SYS$EXAMPLES:PREFER.MAR&lt;BR /&gt;&lt;BR /&gt;Those show DEF declarations, and the rest of the stuff.&lt;BR /&gt;&lt;BR /&gt;.blkb LGI$S_LGIARG_VECTOR&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I'd guess that the Macro32 compiler error you're hitting is related to a (missing) PSECT declaration, but I'd need to run a build on an Itanium to confirm that.  Probably something like:&lt;BR /&gt;&lt;BR /&gt;.PSECT $RWDATA,RD,WRT,NOEXE,NOSHR&lt;BR /&gt;&lt;BR /&gt;needs to be added ahead of the declarations.  But without an Itanium box and without the diagnostics, the specific error isn't clear.  (That code should still build, so there's probably something pretty simple wrong with it.)&lt;BR /&gt;&lt;BR /&gt;Here's an introduction to Macro32 programming on VMS:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://labs.hoffmanlabs.com/node/1435" target="_blank"&gt;http://labs.hoffmanlabs.com/node/1435&lt;/A&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 15 Nov 2010 18:13:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713364#M40748</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2010-11-15T18:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713365#M40749</link>
      <description>Offhand, I can not see why that macro code would not work on IA64.  But it is possible to use C for LOGINOUT callouts, at least on VAX and Alpha, and I would hope that there is not a general problem with LGI callouts on IA64.&lt;BR /&gt;&lt;BR /&gt;See the C code example attached to my response in this thread:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1182554" target="_blank"&gt;http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1182554&lt;/A&gt;</description>
      <pubDate>Mon, 15 Nov 2010 18:24:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713365#M40749</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2010-11-15T18:24:48Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713366#M40750</link>
      <description>My first suspicion is that the addresses are unaligned.  Using the library offsets rather than specific ".long" directives etc.  should resolve the problem.  The offsets will create an exceptable structure and should work on both Alpha and I64 without change.&lt;BR /&gt;&lt;BR /&gt;Dan</description>
      <pubDate>Mon, 15 Nov 2010 20:48:50 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713366#M40750</guid>
      <dc:creator>abrsvc</dc:creator>
      <dc:date>2010-11-15T20:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713367#M40751</link>
      <description>MJ26,&lt;BR /&gt;&lt;BR /&gt;First, welcome to the HP ITRC OpenVMS Forum.&lt;BR /&gt;&lt;BR /&gt;So that we can understand precisely what is happening, it would be extremely helpful if you could post the precise error message that you are encountering.&lt;BR /&gt;&lt;BR /&gt;An alignment problem can be addressed directly by properly aligning the PSECT or by using the .ALIGN macro directive.&lt;BR /&gt;&lt;BR /&gt;More information would be extremely useful.&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Mon, 15 Nov 2010 22:19:37 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713367#M40751</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2010-11-15T22:19:37Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713368#M40752</link>
      <description>&amp;gt;&amp;gt;  I have a macro that was written on Alpha, and will not port over to IA64 successfully.&lt;BR /&gt;&lt;BR /&gt;Please show use how you come to that conclusion.&lt;BR /&gt;&lt;BR /&gt;The macro you present compiles to the exact same definitions/psects/references/aligment on Alpha as on Itanium.  For yucks I tried using "AMAC V5.0-120" and "IMAC V5.0-120-4". They both generate a Psect: . BLANK .                          00000028 (00040.)   01 (001.)  NOPIC   CON   REL   LCL NOSHR   EXE   RD    WRT&lt;BR /&gt;Now as Hoff says, those Psect attribute may no longer be appropriate.&lt;BR /&gt;&lt;BR /&gt;Have you read Jess's reply carefully? You only awared it 5-points suggesting it did not help, yet he points to a rather complete and working example.&lt;BR /&gt;&lt;BR /&gt;Good luck!&lt;BR /&gt;Hein&lt;BR /&gt;</description>
      <pubDate>Tue, 16 Nov 2010 00:57:57 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713368#M40752</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2010-11-16T00:57:57Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713369#M40753</link>
      <description>For clarity in regards to my alignment statement.  I wonder if the structure has changed in appearance slightly with the upgrade to I64 such that the "spacing" between elements is no longer as described in the macro definition presented.  Using the symbolic offsets ususally prevents this type of problem.  &lt;BR /&gt;&lt;BR /&gt;The C solution is perhaps the best though.&lt;BR /&gt;&lt;BR /&gt;Dan</description>
      <pubDate>Tue, 16 Nov 2010 11:51:37 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713369#M40753</guid>
      <dc:creator>abrsvc</dc:creator>
      <dc:date>2010-11-16T11:51:37Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713370#M40754</link>
      <description>First, I want to say to Jess, sorry I gave you 5 pts.  Please post a blank message and I will assign you more as you have provided a great example.  Somehow, I missed it.  I did not see the attachment.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Second.....here is what I have coded so far using C based on Jess's example.   My next question is if I have all of the paa routines defined in seperate .mar files, is it possible to point to those from this file?&lt;BR /&gt;&lt;BR /&gt;I'm still trying to grasp the concept of vectors, so please be kind :)   I assumed that my first .mar file (that I posted first) was pointing to a specific .address in memory to where the associated paa procedures were located.    In the "C" code, I do not see where this is happening.   &lt;BR /&gt;&lt;BR /&gt;Any thoughts would be great.  Thanks!</description>
      <pubDate>Tue, 16 Nov 2010 12:10:43 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713370#M40754</guid>
      <dc:creator>MJ26</dc:creator>
      <dc:date>2010-11-16T12:10:43Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713371#M40755</link>
      <description>/*&lt;BR /&gt;**   INCLUDE FILES&lt;BR /&gt;*/&lt;BR /&gt;#include &lt;STDLIB&gt;&lt;BR /&gt;#include &lt;DESCRIP&gt;&lt;BR /&gt;#include &lt;STRING&gt;&lt;BR /&gt;#include &lt;SSDEF&gt;&lt;BR /&gt;#include &lt;PRCDEF&gt;&lt;BR /&gt;#include &lt;IODEF&gt;&lt;BR /&gt;#include &lt;LGIDEF&gt;&lt;BR /&gt;&lt;BR /&gt;/* System service calls */&lt;BR /&gt;int SYS$ASSIGN();&lt;BR /&gt;int SYS$QIOW();&lt;BR /&gt;int SYS$DASSGN();&lt;BR /&gt;&lt;BR /&gt;/* Define structure for the callout routines vector */&lt;BR /&gt;struct LGI$CALLOUT_VECTOR {&lt;BR /&gt;    long int LGI$L_ICR_ENTRY_COUNT;&lt;BR /&gt;    int (*LGI$ICR_INIT) ();&lt;BR /&gt;    int (*LGI$ICR_IACT_START) ();&lt;BR /&gt;    int (*LGI$ICR_DECWINIT) ();&lt;BR /&gt;    int (*LGI$ICR_IDENTIFY) ();&lt;BR /&gt;    int (*LGI$ICR_AUTHENTICATE) ();&lt;BR /&gt;    int (*LGI$ICR_CHKRESTRICT) ();&lt;BR /&gt;    int (*LGI$ICR_FINISH) ();&lt;BR /&gt;    int (*LGI$ICR_LOGOUT) ();&lt;BR /&gt;    int (*LGI$ICR_JOBSTEP) ();&lt;BR /&gt;    };&lt;BR /&gt;&lt;BR /&gt;/* Declare the callout routines that we define below. */&lt;BR /&gt;static int paalgi_init();&lt;BR /&gt;static int paalgi_decwinit();&lt;BR /&gt;static int paalgi_identify();&lt;BR /&gt;static int paalgi_authenticate();&lt;BR /&gt;static int paalgi_logout();&lt;BR /&gt;&lt;BR /&gt;#pragma nostandard&lt;BR /&gt;globaldef struct LGI$CALLOUT_VECTOR LGI$LOGINOUT_CALLOUTS =&lt;BR /&gt;{&lt;BR /&gt;    9,                            /* argument count */&lt;BR /&gt;    paalgi_init,                  /* general login init */&lt;BR /&gt;    NULL,                         /* interactive start - initialized */&lt;BR /&gt;    paalgi_decwinit,              /* decwindows init */&lt;BR /&gt;    paalgi_identify,              /* identify - filled in if interactive */&lt;BR /&gt;    paalgi_authenticate,          /* authenticate - filled in if dialup */&lt;BR /&gt;    NULL,                         /* check restrictions */&lt;BR /&gt;    NULL,                         /* login finish */&lt;BR /&gt;    paalgi_logout,                /* logout */&lt;BR /&gt;    NULL,                         /* each batch jobstep */&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;static int paalgi_init()&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;static int paalgi_decwinit()&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;static int paalgi_identify()&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;static int paalgi_authenticate()&lt;BR /&gt;{&lt;BR /&gt;}&lt;BR /&gt;static int paalgi_logout()&lt;BR /&gt;{&lt;BR /&gt;}&lt;/LGIDEF&gt;&lt;/IODEF&gt;&lt;/PRCDEF&gt;&lt;/SSDEF&gt;&lt;/STRING&gt;&lt;/DESCRIP&gt;&lt;/STDLIB&gt;</description>
      <pubDate>Tue, 16 Nov 2010 12:11:08 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713371#M40755</guid>
      <dc:creator>MJ26</dc:creator>
      <dc:date>2010-11-16T12:11:08Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713372#M40756</link>
      <description>The other files:&lt;BR /&gt;&lt;BR /&gt;paalig_init.for&lt;BR /&gt;paalig_decwinit.for&lt;BR /&gt;paalig_identify.for&lt;BR /&gt;paalig_authenticate.for&lt;BR /&gt;paalig_logout.for&lt;BR /&gt;&lt;BR /&gt;are already compiled and added into the shared images.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thought that might help.</description>
      <pubDate>Tue, 16 Nov 2010 12:19:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713372#M40756</guid>
      <dc:creator>MJ26</dc:creator>
      <dc:date>2010-11-16T12:19:30Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713373#M40757</link>
      <description>&amp;gt;&amp;gt;  In the "C" code, I do not see where this is happening. &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;It is not happening. In that C example the LGI vector is filled in with pointers to local routines.&lt;BR /&gt;&lt;BR /&gt;But we now learned that you have the service routines in independent fortra mondule.&lt;BR /&gt;The Macro module was, and is, just fine for that.&lt;BR /&gt;The .address instructs the LINKER to fill in a reference to routine which eventually the Image Activator will make real.&lt;BR /&gt;&lt;BR /&gt;Isn't it about time you start to describe what went wrong, instead of what it right?&lt;BR /&gt;An error message perhaps?&lt;BR /&gt;There is a second vector in play, the transfer vector used to build the shareable.&lt;BR /&gt;&lt;BR /&gt;My WAG is the problem is in the linking of the shareable or the logical name defined.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt; Jess, sorry I gave you 5 pts.&lt;BR /&gt;And I am sorry for reading too much into that.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Hein.&lt;BR /&gt;</description>
      <pubDate>Tue, 16 Nov 2010 13:23:15 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713373#M40757</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2010-11-16T13:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713374#M40758</link>
      <description>MJ26,&lt;BR /&gt;&lt;BR /&gt;Concerning your post at 12:10:43 GMT today:&lt;BR /&gt;&lt;BR /&gt;A vector is simply a list of addresses. What the MACRO code does is define a set of longword (32-bit) locations that will contain pointers to the actual locations of the identified routines.&lt;BR /&gt;&lt;BR /&gt;The MACRO assember/compiler (MACRO in the case of VAX; AMACRO compiler for Alpha; IMACRO in the case of IA64) will produce two outputs: the actual storage locations and a list (for the linker) of the external names that are to go into those locations).&lt;BR /&gt;&lt;BR /&gt;When LINK is used to combine the object modules, the address locations will, in concept, be resolved. Actually, they will produce another list, to be used by the image activator when the image is actually loaded into memory (this is one of the foundation concepts behind shareable libraries; the actual locations of external addresses can vary from activation to activation).&lt;BR /&gt;&lt;BR /&gt;While the actual addresses of entry points can change, the vectors (the address of the address) remains unchanged.&lt;BR /&gt;&lt;BR /&gt;The details of this can be found in the internals and data structures manual. A simplified version can be found in the LINKER reference manual. The IDSM is available as a book; the LINKER manual is available from the documentation section of the OpenVMS www site as a PDF.&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Tue, 16 Nov 2010 13:41:36 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713374#M40758</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2010-11-16T13:41:36Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713375#M40759</link>
      <description>I believe the attached C code may serve your needs, although I have not tested it on either Alpha or I64.  Build it into the shared image along with your macro routines that it references.&lt;BR /&gt;&lt;BR /&gt;Jess</description>
      <pubDate>Tue, 16 Nov 2010 19:26:49 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713375#M40759</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2010-11-16T19:26:49Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713376#M40760</link>
      <description>While the real probelm is still unknown, we can waste some space and time to get some background information right.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; The .address instructs the LINKER to fill in a reference to routine which eventually the Image Activator will make real.&lt;BR /&gt;&lt;BR /&gt;The linker does not see the .address: (the) MACRO (-compiler) turns that into an undefined symbol and an object relocation, because the actual address in or the offset within the image is unknown to (the) MACRO (compiler). In case the symbol is defined in another object module, which is linked into the image, the linker knows where the procedure is and resolves the undefined symbol and applies the object relocation. In terms of the source code, the linker writes the actual address of the prodecure in the data structure. In case the symbol is defined by a universal symbol from a shareable image, the linker doesn't know the procedures's address but resolves the undefined symbol and creates a fixup. The latter may be seen as a "reference". However, the fixup itself has no information whether it is for a routine or data. When the address is known, at image activation time, when for all the involved images their address space is known, the Image Activator applies the fixup, In terms of source code, the Image Activator writes the actual address of the procedure in the data structure.&lt;BR /&gt;&lt;BR /&gt;&amp;gt;&amp;gt;&amp;gt; Actually, they will produce another list, to be used by the image activator when the image is actually loaded into memory.&lt;BR /&gt;&lt;BR /&gt;The Image Activator does not load anything. I'm sure it would have been named loader instead. The Image Activator sets up the virtual address space of all the involved images: one main image and zero to many shareable images. This is usually named as mapping the images, although there is not much actual mapping done. The Image Activator assigns VAs to all the program segments (I64 term) or image sections (Alpha term). These things can be file based, global, demand zero, or pagefile VMS sections. These VMS sections are mapped, when there is real memory associated with the section. Only those sections which are touched at activation time are mapped. The section in which the source code data structure ends up is mapped, when the fixup has to be made. (Obviously it is a pagefile section.) Anything else is NOT in memory especially code and readonly data are not "loaded" into memory. That happens at run-time, that is AFTER activation.</description>
      <pubDate>Tue, 16 Nov 2010 19:27:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713376#M40760</guid>
      <dc:creator>H.Becker</dc:creator>
      <dc:date>2010-11-16T19:27:20Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713377#M40761</link>
      <description>Sorry, cut and paste error - last attachment won't compile.  Use this one.&lt;BR /&gt;&lt;BR /&gt;Jess</description>
      <pubDate>Tue, 16 Nov 2010 19:33:29 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713377#M40761</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2010-11-16T19:33:29Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713378#M40762</link>
      <description>Herr Becker,&lt;BR /&gt;&lt;BR /&gt;I well know that the Image Activator sets up the address space and that it does not do the actual loading.&lt;BR /&gt;&lt;BR /&gt;My goal was to explain as simply as possible what is going on. Obviously, the OP is not familiar with the mechanics of resolving external symbols. In all honesty, I have often found the descriptions of external symbol resolution accurate, yet not within the easy grasp of those encountering it for the first time.&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Tue, 16 Nov 2010 20:31:38 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713378#M40762</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2010-11-16T20:31:38Z</dc:date>
    </item>
    <item>
      <title>Re: IA64</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713379#M40763</link>
      <description>Thanks EVERYONE for who has taken the time to assist.  I will try the various methods to see if I can get something to work successfully.   I won't close the discussion until its resolved, and when that happens, I will also put the resolution on here as well.  Granted, its possibly a 1 off question, but still, might be handy for someone else.  &lt;BR /&gt;&lt;BR /&gt;Again, thanks everyone for the help.  This board is very helpful because of the level of expertise here.</description>
      <pubDate>Wed, 17 Nov 2010 15:48:16 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/ia64/m-p/4713379#M40763</guid>
      <dc:creator>MJ26</dc:creator>
      <dc:date>2010-11-17T15:48:16Z</dc:date>
    </item>
  </channel>
</rss>

