home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / g77-0.5.15-src.tgz / tar.out / fsf / g77 / f / README.NEXTSTEP < prev    next >
Text File  |  1996-09-28  |  2KB  |  39 lines

  1. 950216
  2.  
  3. This file contributed by Toon Moene (toon@moene.indiv.nluug.nl).
  4.  
  5. Developers of FORTRAN code on NEXTSTEP (all architectures) have to  
  6. watch out for the following problem when writing programs with  
  7. large, statically allocated (i.e. non-stack based) data structures  
  8. (common blocks, saved arrays).
  9.  
  10. Due to the way the native loader ('/bin/ld') on NEXTSTEP lays out  
  11. data structures in virtual memory, it is very easy to create an  
  12. executable wherein the '__DATA' segment overlaps (has addresses in  
  13. common) with the 'UNIX STACK' segment.
  14.  
  15. This leads to all sorts of trouble, from the executable simply 'not  
  16. being executable' to Bus errors. The NEXTSTEP command line tool  
  17. 'ebadexec' points to the problem as follows:
  18.  
  19. % /bin/ebadexec a.out
  20. /bin/ebadexec: __LINKEDIT segment (truncated address = 0x3de000  
  21. rounded size = 0x2a000) of executable file: a.out overlaps with UNIX  
  22. STACK segment (truncated address = 0x400000 rounded size =  
  23. 0x3c00000) of executable file: a.out
  24.  
  25. (in this case it is the '__LINKEDIT' segment which overlaps the  
  26. stack segment). This can be cured by assigning the '__DATA' segment  
  27. (virtual) addresses beyond the stack segment. A conservative  
  28. estimate for this is from address 6000000 (hexadecimal) onwards -  
  29. this has always worked for me [Toon Moene]:
  30.  
  31. % g77 -segaddr __DATA 6000000 test.f
  32. % ebadexec a.out
  33. ebadexec: file: a.out appears to be executable
  34.  
  35. Browsing through the Makefile in the f/ directory in your gcc  
  36. distribution, you will find that linking f771 itself also has to be  
  37. done with these flags - it apparently has large statically allocated  
  38. data structures.
  39.