home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / os / vms / 14174 < prev    next >
Encoding:
Text File  |  1992-08-26  |  2.0 KB  |  41 lines

  1. Newsgroups: comp.os.vms
  2. Path: sparky!uunet!decwrl!pa.dec.com!rdg.dec.com!adserv.enet.dec.com!winalski
  3. From: winalski@adserv.enet.dec.com (Paul S. Winalski)
  4. Subject: Re: Linking problem!!!!!!! HELP!!!!!!!!
  5. Message-ID: <1992Aug27.020537.18155@rdg.dec.com>
  6. Lines: 28
  7. Sender: news@rdg.dec.com (Mr News)
  8. Reply-To: winalski@adserv.enet.dec.com (Paul S. Winalski)
  9. Organization: Digital Equipment Corporation, Nashua NH
  10. References:  <1992Aug26.191820.23959@mahendo.jpl.nasa.gov>
  11. Date: Thu, 27 Aug 1992 02:05:37 GMT
  12.  
  13.  
  14. In article <1992Aug26.191820.23959@mahendo.jpl.nasa.gov>,
  15. robert@triton.jpl.nasa.gov (Robert Angelino) describes a problem where
  16. linking a C program compiled /G_FLOAT gets scads of Linker MULDEF errors
  17. when bringing in VAXCRTLG.EXE.
  18.  
  19. The problem here is that you're also linking against the DECwindows shareable
  20. images, and these images are linked against VAXCRTL.EXE (the D-float version
  21. of the C RTL).  There is no way to use the G-float version of the C RTL and
  22. DECwindows calls from the same program image.  This restriction will go away
  23. in some future version of DECwindows and of VMS, when everybody is using the
  24. DEC C RTL in place of VAXCRTL (the DEC C RTL doesn't have this G-float/D-float
  25. RTL mixing problem).  Unfortunately, there aren't any real work-arounds for
  26. this problem.  Right now, DECwindows and the G-float C RTL simply don't mix.
  27.  
  28. If you can, try compiling your code /D_FLOAT.  If that isn't an option, then
  29. you can try packaging your application as two separate images, one of which
  30. is an executable image and one of which is a shareable image.  The key thing
  31. is that one image must contain all the DECwindows calls and be compiled
  32. /D_FLOAT, and the other image must contain all the /G_FLOAT code.  Use
  33. LIB$FIND_IMAGE_SYMBOL to bring the shareable image into your process.
  34.  
  35. Another alternative is to package things as two executable images, one of
  36. which does G-float and the other of which does DECwindows, and run the
  37. application in multiple processes (as I said, there aren't any good work-
  38. arounds).
  39.  
  40. --PSW
  41.