orgass+@rchland.ibm.com (Dick Orgass) (04/27/91)
Shared Libraries There is a small annoying problem caused by an incorrect detail in the creation of the .ma files for shared libraries and AIX 3.1. The rule for creating .ma at line 63 of util/m3all.tmpl and at line 58 of util/m3fromC.tmpl should be as follows: libm3$(LIB).ma: libm3$(LIB).a $(OBJS) @@\ ar ru libm3tmp.a $(OBJS) @@\ $(M3AR) libm3tmp.a @@\ mv libm3tmp.ma libm3$(LIB).ma @@\ rm libm3tmp.a @@\ -rm .ROOT/libs/libm3$(LIB).ma @@\ ln -s `pwd`/libm3$(LIB).ma .ROOT/libs In the distributed version of this rule, the .ma file is created directly from the .a file. However, the result is incorrect because the .ma file indicates that all of the initilization procedures for a library are in a single module. As a result, when an initialization program is written all of these initilization procs are called even if there is no client of the module in the application! The above rule avoids this problem. I think there is a more efficient solution but this will solve immediate problems. Udir.i3 There are a few small errors in libs/aix-3-1/os/Udir.i3 which can be corrected as follows. Modify line 7 so that is reads: IMPORT Utypes; Replace lines 21-22 with the following three lines: MAXNAMLEN = 255; (* Maximum length of component of file path name. *) MAXNAMELEN = MAXNAMLEN; MAXPATHLEN = 1023; (* Maximum length of file path name. *) Modify line 39 so that it reads: d_ino: Utypes.ino_t; Dick