home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 263,438 of 264,096   
   hb0815 to Waldek Hebisch   
   Re: Cross gcc targeting VMS   
   29 Sep 25 22:01:12   
   
   From: mw40171@mucweb.de   
      
   On 9/29/25 18:17, Waldek Hebisch wrote:   
      
   > Now about troubles.  VMS C functions use different name at C level   
   > and different in libraries.  Moreover, while offically function is   
   > available in "imagelib.olb", actual function is in a different library   
   > and this library is needed for succesful linking.  So, one needs   
   > to know real name of a given function and teach gcc to use it.   
      
   Yes, for example, printf in the source code is changed  to DECC$GXPRINTF   
   in the object module. DECC$GXPRINTF is a symbol in the shareable image   
   library IMAGELIB.OLB. Symbols in a library must be unique. That explains   
   the DECC$ prefix. I don't know what the GX means or where it comes from.   
   I also don't know where the mapping/replacement table is.   
      
   IMAGELIB.OLB contains only the symbol and a link to the shareable image.   
   The actual code (and data) is in the shareable image, not in a library.   
   So if you link using IMAGELIB.OLB you link with DECC$SHR. At least on   
   Alpha, the symbol DECC$GXPRINTF is also in STARLET.OLB. By default this   
   OLB is not used, by default you dynamically link and not statically. Do   
   a link on VMS/Alpha with a map file. In the map you will only see   
   DECC$SHR, no STARLET.OLB and no IMAGELIB.OLB.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca