doelz@urz.unibas.ch (01/31/91)
Hi, following a post from USENET, I obtained MOPAC (semi-empirical quantum chemistry application) Version 6.0 from ouchem.chem.oakland.edu:/pub/unix/ [141.210.108.5] and tried to compile it on a SGI 4D/320GTX running PFA and IRIX 3.3.2. I get a compiler warning with O2 without pfa as follows: f77 -O2 -p -static -c deri2.f uopt: Warning: harmless compiler bug detected (LDA length 0); please report to MIPS Well. This didnt hurt. It runs, with a great performance, and produces correct output. I get WARNINGS while trying to compile it with PFA and -mp for multiple processors, because there are two statements: C$DOIT with several argumets C$DOUT VBEST If I edit them out, the warnings disappear. Other multiprocessor directives were not found. However, compiling the code is ok, and the linking (after -O2 -pfa keep -p -static -mp -mp_keep -v) FAILS with the message: modl [/convex_tmp/mopac] % make Loading mopac.exe ... /usr/bin/ld: Undefined: __mp_simple_sched_ __mp_4th_arg_ *** Error code 1 Stop. Has anyone seen this behaviour or is there any workaround known ? Regards Reinhard ************************************************************************ Dr. Reinhard Doelz * EAN doelz@urz.unibas.ch Biocomputing * DECNET 48130::doelz Biozentrum der Universitaet * X25 psi%46211142::embnet Klingelbergstrasse 70 * FAX x41 61 256760 CH 4056 Basel * TEL x41 61 253880 ext 888 ************************************************************************
bron@bronze.wpd.sgi.com (Bron Campbell Nelson) (02/05/91)
In article <1991Jan31.103637.1344@urz.unibas.ch>, doelz@urz.unibas.ch writes: > [stuff deleted] > I get WARNINGS while trying to compile it with PFA and -mp for multiple > processors, because there are two statements: > > C$DOIT with several argumets > C$DOUT VBEST > > If I edit them out, the warnings disappear. This happens because the "C$" prefix is what SGI uses to indicated a multi-processor compiler directive. These two statements look like directives, but are not recognized as any known directive, hence the warning. > [...] > However, compiling the code is ok, and the linking > (after -O2 -pfa keep -p -static -mp -mp_keep -v) FAILS with the message: > > modl [/convex_tmp/mopac] % make > Loading mopac.exe ... /usr/bin/ld: > Undefined: > __mp_simple_sched_ > __mp_4th_arg_ > *** Error code 1 > > Stop. > > Has anyone seen this behaviour or is there any workaround known ? > There are 2 possible causes (that I know about :-)): (1) The most likely cause is that the load line does not have the Fortran multi-processing library in it. This library is included in the load when you add the "-mp" option to the f77 load command (e.g. "f77 -mp *.o"). This is the prefered method. If you do not use f77 do to the link, but rather construct your load line by hand (i.e. you use cc or call ld directly) the library name is libI77_mp.a (e.g. -lI77_mp or /usr/lib/libI77_mp.a). In brief: use the -mp option to link code that was compiled with the -mp option. (2) If you have a new (3.3.*) version of the Fortran compiler front end (/usr/lib/fcom) and an old (3.1.* or 3.2.*) version of the Fortran MP runtime library (/usr/lib/libI77_mp.a). If this is the case, the best thing to do is use "inst" to remove the Fortran and PFA subsytems, and then reinstall them. -- Bron Campbell Nelson bron@sgi.com or possibly ..!ames!sgi!bron These statements are my own, not those of Silicon Graphics.