home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / lang / modula3 / 1085 < prev    next >
Encoding:
Text File  |  1992-12-20  |  7.6 KB  |  191 lines

  1. Newsgroups: comp.lang.modula3
  2. Path: sparky!uunet!haven.umd.edu!decuac!pa.dec.com!src.dec.com!Roger Hoover <rhoover@watson.ibm.com>
  3. From: Roger Hoover <rhoover@watson.ibm.com>
  4. Subject: IBMR2 fixes for 2.10
  5. To: m3, barton@chopin.eche.ualberta.ca
  6. Message-ID: <9212171401.AA18588@trek.watson.ibm.com>
  7. Cc: rhoover@watson.ibm.com
  8. X-External-Networks: yes
  9. Date: Thu, 17 Dec 92 09:01:15 EST
  10. Lines: 179
  11.  
  12.  
  13. Bug fixes to get 2.10 to compile on RS6000 with shared libs.
  14.  
  15. > From: Eric Muller <muller@src.dec.com>
  16. > Another problem we have fixed recently, in m3make/src/M3makefile: the
  17. > lines for the rule install should look like:
  18. >
  19. > ----------------------------------------
  20. > install::
  21. >     @../src/recmkdir $(BIN_INSTALL)
  22. >     @../src/recmkdir $(LIB_INSTALL)
  23. >     @../src/recmkdir $(PUB_INSTALL)
  24. >
  25. > #if defined (MAN_SECTION)
  26. > install::
  27. >     @../src/recmkdir $(MAN_INSTALL)/man##MAN_SECTION
  28. > #else
  29. > install:
  30. >     @../src/recmkdir $(MAN_INSTALL)/man1
  31. >     @../src/recmkdir $(MAN_INSTALL)/man2
  32. >     @../src/recmkdir $(MAN_INSTALL)/man3
  33. >     @../src/recmkdir $(MAN_INSTALL)/man4
  34. >     @../src/recmkdir $(MAN_INSTALL)/man5
  35. >     @../src/recmkdir $(MAN_INSTALL)/man6
  36. >     @../src/recmkdir $(MAN_INSTALL)/man7
  37. >     @../src/recmkdir $(MAN_INSTALL)/man8
  38. > #endif
  39. > ----------------------------------------
  40. >
  41. > otherwise you have a extra blank line at line 121 in .makefile.
  42. >
  43.  
  44. Changes in model_configs/IBMR2:
  45.  
  46. o  A warning about which aix c compiler you need.
  47. o  The library produced by library() is of the form
  48.    lib##name.a, not lib##name.so.1.1 as it is for SPARK,
  49.    thus all:: and clean:: should be lib##name.a
  50. o  the sed command must contain real tabs, not \t's
  51. o  there is a / missing before the p at the end of the sed
  52.    expression.
  53. o  colons in bsdcc command must be escaped with \ or imake
  54.    will think they are make productions and screw up the
  55.    tab before the line.
  56. o  -nostart should be _nostart
  57. o  libname.a should be lib##name.a (two occurrences)
  58. o   _DREDUCED_TO_ASCII_SPACE should be -DREDUCED_TO_ASCII_SPACE
  59. o  it turns out there is a second incompatable sysV install
  60.    on AIX, so we need to specify /usr/ucb/install
  61. o  Shared libraries on RS6K require all name resolution to
  62.    be done at link time.  All libraries need -lm, but other
  63.    libraries will need -lm3 and perhaps more.  (for example,
  64.    libm3ui.a requires -lm3X11R4 -lX11 -lm3 in addition to -lm)
  65.    I've added a second argument to library and Library to
  66.    specify these.  This means adding a second argument to
  67.    all of the library lines in m3makefiles.  Also, if you want
  68.    to run on other architectures, you have to fix up the
  69.    library macros everywhere with an ignored second arg.
  70.  
  71. roger
  72.  
  73. trek[m3]% diff -c m3make/model-configs/IBMR2 m3make/IBMR2/config
  74. *** m3make/model-configs/IBMR2    Tue Oct 27 14:25:43 1992
  75. - --- m3make/IBMR2/config    Thu Dec 17 08:01:16 1992
  76. ***************
  77. *** 43,48 ****
  78. - --- 43,53 ----
  79.      discusses the remaining incompatibilities.  The troff source
  80.      for a version of the porting document is in file
  81.      /usr/lpp/bos/bsdport.tr.
  82. +
  83. + ALSO NOTE:  There is a bug in earlier versions of the 3.2 xlc compiler
  84. + that will give you compilation errors.  The earliest version known to
  85. + compile m3 2.10(and above) is 1.2.0.7.  1.2.0.0 does not work.  To see
  86. + which version you have, type "/usr/ucb/what /usr/lpp/xlc/bin/xlcentry".
  87.   */
  88.  
  89.   /*********************************************************************/
  90. ***************
  91. *** 152,175 ****
  92.   /* These macros are used instead of the ones in the template, so that we
  93.      can have shared libraries */
  94.  
  95. ! #define library(name)                                                       @@\
  96. ! all:: lib##name.so.1.1                                                      @@\
  97. ! clean:: ; rm -f lib##name.so.1.1 lib##name.ax                               @@\
  98.   lib##name.a: FRC                                                            @@\
  99.       $(DO_M3) -a lib##name.a $(PGM_SOURCES) $(IMPORT_LIBS)               @@\
  100.       /bin/dump -g lib##name.a | sed -n -e \                              @@\
  101. !       's/^[ \t]*[0-9][0-9]*[ \t]*\([^ \t.][^ \t]*\)$$/\1p' > _expnames  @@\
  102. !     /bin/bsdcc -bE:_expnames -bM:SRE -o _shar.o lib##name.a \           @@\
  103. !       -L$(LIB_USE) $(IMPORT_LIBS) $(LINKFILES) -e -nostart              @@\
  104. !     rm -f libname.a                                                     @@\
  105. !     /bin/ar cru libname.a _shar.o                                       @@\
  106.       rm -f _expnames _shar.o    
  107.  
  108. ! #define Library(name)                                                       @@\
  109.   install::                                                                   @@\
  110.       INSTALL (lib##name.a, $(LIB_INSTALL), 644)                          @@\
  111.       INSTALL (lib##name.ax, $(LIB_INSTALL), 644)                         @@\
  112. ! library(name)
  113.  
  114.   /* Give the value 0 if you want the m3 driver to pass -L/-l arguments to
  115.      LD for libraries; otherwise (value = 1), the m3 driver will pass
  116. - --- 157,181 ----
  117.   /* These macros are used instead of the ones in the template, so that we
  118.      can have shared libraries */
  119.  
  120. ! #define library(name,deplibs)                                               @@\
  121. ! all:: lib##name.a                                                           @@\
  122. ! clean:: ; rm -f lib##name.a lib##name.ax                                    @@\
  123.   lib##name.a: FRC                                                            @@\
  124.       $(DO_M3) -a lib##name.a $(PGM_SOURCES) $(IMPORT_LIBS)               @@\
  125.       /bin/dump -g lib##name.a | sed -n -e \                              @@\
  126. !       's/^[     ]*[0-9][0-9]*[     ]*\([^     .][^     ]*\)$$/\1/p' \      @@\
  127. !       > _expnames                                                       @@\
  128. !     /bin/bsdcc -bE\:_expnames -bM\:SRE -o _shar.o lib##name.a \         @@\
  129. !       -L$(LIB_USE) deplibs -lm -e _nostart                              @@\
  130. !     rm -f lib##name.a                                                   @@\
  131. !     /bin/ar cru lib##name.a _shar.o                                     @@\
  132.       rm -f _expnames _shar.o    
  133.  
  134. ! #define Library(name,deplibs)                                               @@\
  135.   install::                                                                   @@\
  136.       INSTALL (lib##name.a, $(LIB_INSTALL), 644)                          @@\
  137.       INSTALL (lib##name.ax, $(LIB_INSTALL), 644)                         @@\
  138. ! library(name,deplibs)
  139.  
  140.   /* Give the value 0 if you want the m3 driver to pass -L/-l arguments to
  141.      LD for libraries; otherwise (value = 1), the m3 driver will pass
  142. ***************
  143. *** 188,194 ****
  144.   /* Imake may need to be configured
  145.  
  146.      Note: the value of this symbol must not use the values of other symbols. */
  147. ! IMAKEFLAGS = _DREDUCED_TO_ASCII_SPACE
  148.  
  149.   /* Some versions of make(1) let us specify the shell to use. In any
  150.      case, we want sh */
  151. - --- 194,200 ----
  152.   /* Imake may need to be configured
  153.  
  154.      Note: the value of this symbol must not use the values of other symbols. */
  155. ! IMAKEFLAGS = -DREDUCED_TO_ASCII_SPACE
  156.  
  157.   /* Some versions of make(1) let us specify the shell to use. In any
  158.      case, we want sh */
  159. ***************
  160. *** 205,211 ****
  161.   MAKE = /usr/bin/make
  162.  
  163.   /* And install */
  164. ! #define INSTALL(f,d,p) install -c -m p f d
  165.  
  166.   /* Here are the pieces that the Modula-3 driver needs.
  167.       PASS0: the Modula-3 to C compiler
  168. - --- 211,217 ----
  169.   MAKE = /usr/bin/make
  170.  
  171.   /* And install */
  172. ! #define INSTALL(f,d,p) /usr/ucb/install -c -m p f d
  173.  
  174.   /* Here are the pieces that the Modula-3 driver needs.
  175.       PASS0: the Modula-3 to C compiler
  176. trek[m3]% diff -c libm3/src/m3makefile~ libm3/src/m3makefile
  177. *** libm3/src/m3makefile~       Mon Nov 16 13:07:47 1992
  178. - --- libm3/src/m3makefile        Thu Dec 17 07:50:26 1992
  179. ***************
  180. *** 201,204 ****
  181.  
  182.   M3FLAGS = -w1 -make -why -nostd -times
  183.  
  184. ! Library (m3)
  185. - --- 201,204 ----
  186.  
  187.   M3FLAGS = -w1 -make -why -nostd -times
  188.  
  189. ! Library (m3,)
  190. trek[m3]%
  191.