home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / os / vms / 19998 < prev    next >
Encoding:
Internet Message Format  |  1992-12-29  |  2.4 KB

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!saimiri.primate.wisc.edu!ames!agate!ucbvax!XRT.UPENN.EDU!BUHLE
  2. From: BUHLE@XRT.UPENN.EDU ("E. Loren Buhle, Jr. [-662-3084]", 215)
  3. Newsgroups: comp.os.vms
  4. Subject: ballooning EXE size
  5. Message-ID: <01GSUT89O7JK000J0I@XRT.UPENN.EDU>
  6. Date: 28 Dec 92 20:24:00 GMT
  7. Sender: usenet@ucbvax.BERKELEY.EDU
  8. Organization: The Internet
  9. Lines: 44
  10.  
  11. I have a problem with the size of an executable going from ~1,000 blocks to 
  12. something on the order of 75,000 blocks. 
  13.  
  14. What am I doing? I am charged with writing a small interface to some existing 
  15. FORTRAN code. I have no control over the existing FORTRAN code and can only say 
  16. that it makes extensive use of VAX-FORTRAN Structure/record/map statements. I 
  17. don't own the large body of FORTRAN code and really don't relish the thought of 
  18. rewriting it...
  19.  
  20. When the FORTRAN interface stub subroutines (e.g. subroutines that print a "not 
  21. implemented" message and return) are replaced with my code, the resulting 
  22. executable goes from ~1,000blocks to ~75,000 blocks. 
  23.  
  24. Yes, I use some scratch arrays (scratch arrays defined as local to the 
  25. subroutine), so I replaced these with LIB$GET_VM and LIB$FREE_VM and the 
  26. executable size when back to ~1,100 blocks. I presume the difference is due to 
  27. my code size. Ok so far, but I can't get away with this for long....
  28.  
  29. Eventually, the addition of the simplest code causes the executable to go from 
  30. 1,100 blocks to ~76,000 blocks. Looking at the LINK map, the size of my 
  31. interface modules are quite small. Remember, this is FORTRAN and most of the 
  32. memory is statically allocated.
  33.  
  34. It would seem that I'm crossing some kind of boundary in terms of virtual
  35. memory usage and am reserving space in the executable file. This is merely a
  36. hunch and I'd like to query info-vax for an explanation and any possible
  37. solutions. Yes, I use all the sharable portions of FORTRAN and C (there is some 
  38. C in my interface, but I observe the same behavior when the C routines are
  39. "dummied" out) as follows:
  40.  
  41. $link/map/exec=foo.exe
  42.  untouchable.olb/INC=foo_main, -    ! main calling routine
  43.  untouchable.olb/L, -        ! library of untouchable code objects
  44.  expm.olb/l, -            ! my interface routines
  45.  sys$input/opt
  46.    SYS$SHARE:FORRTL.EXE/SHARE,sys$library:vaxcrtl.exe/share
  47.  
  48. Thoughts? 
  49.  
  50. --
  51. Dr. E. Loren Buhle, Jr.  INTERNET: BUHLE@XRT.UPENN.EDU
  52. University of Pennsylvania School of Medicine         Phone: 215-662-3084
  53. Rm 440A, 3401 Walnut St., Philadelphia, PA 19104-6228   FAX: 215-349-5978
  54.  
  55.