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