Next: E Link library list
Up: D Installation: UNIX
Prev: D.1 Execution of Makefile on HP-UX
Contents
It is highly likely that the problem is linked to file underscore.h residing in library include.
In fact, depending on your machine's cpp preprocessor, file underscore.h may or may not generate underline characters at the end of the name of subroutine C. To correct this error, you will have to modify the definition of the concatenation function for character strings (name2(a,b)) defined in file underscore.h. To perform this modification please consult the documentation available on preprocessor cpp.
Having made these corrections, you can now restart the compilations of those libraries which posed the problems separately by typing:
make library nameand restart the make to perform the linking process:
make executables
Error Message:
cd //houx/modu/ascii/sta/s/cont ;\ make -f //houx/modu/ascii/sta/s/cont/Makefile\ CompileDir=//houx/modu/make/Installapollo/cont \ sourceDir=//houx/modu/ascii/sta/s/cont \ output=//houx/modu/make/Installapollo/output_compil \ ListErr=//houx/modu/make/Installapollo/erreur_compil \ CC="cc" CIFLAGS="-W0,-idir,//houx/modu/ascii/sta/s/include"\ CCFLAGS="-c -W0,-indexl,-pic" \ F77="f77" F77FLAGS="-c -W0,-overlap,dd,dc,-indexl,-pic,-idir,\ //houx/modu/ascii/sta/s/include" \ AR="ar" ARFLAGS="rv" \ RANLIB="ranlib" \ LIB="//houx/modu/apollo/sta/lib/libcont.a" Make: Expanded macro line is too long. Stop. *** Exit 1 Stop. *** Exit 1 Stop.
In this case, you must reduce the value of MAXSUB in the file M_config directory $MR/make/Install$MM. By default, it is set to 330: for example set it to 250 and execute again the compilation of the library which has generated this error (if you still have the same error, reduce again the value of MAXSUB). Changing the value of MAXSUB allows to avoid having too long dependence lines, the library is compiled with several Makefile.
Error message:
wsifst8# make executables cd /server1/Modulef/make/Installsun ; f77 -c -I/server1/Modulef/ascii/\ sta/s/include /server1/Modulef/ascii/sta/s/ppal/procat.f ;\ f77 -Bstatic -o /server1/Modulef/sun/sta/bin/procat procat.o -L/server1/\ Modulef/sun/sta/lib -lsymo -lutil -lu_sun -lX11 /server1/Modulef/ascii/sta/s/ppal/procat.f: MAIN procat: rm -f /server1/Modulef/make/Installsun/procat.o rm -f /server1/Modulef/sun/sta/etc/proc.direct /server1/Modulef/sun/sta/bin/procat GETENVS : VARIABLE NON DEFINIE OU VIDE : MR 80 -1 abort: called *** Abort - core dumped make: Fatal error: Command failed for target `/server1/Modulef/sun/\ sta/etc/proc.direct' wsifst8#
It is necessary to define, in your current environment ( .cshrc or .profile), the environment variables MM, MR and MV in the same ways as in the installation Makefile, and USER variable if it is not yet initialized.
The unsatisfied references may either be system functions (x11 libraries, ...), or MODULEF procedures.
For example, if you choose x11 as graphic peripheral, then variable STDLIB should contain the value -lX11 on most machines (except HP/Apollo, in which case it is empty).
For example, the unsatisfied references may have one of the following forms (consider procedure, getenvc):
#define proc(x) x
This definition of function proc must be used on the IBM RISC System 6000.
#define proc(x) name2(x,_)
Remark: If the unsatisfied references are MODULEF procedures contained in directory zzzz_mod and if your compiler accepts unsatisfied references (as for example the HP/Apollo compiler) this does not pose a problem.
Once the modifications are made, you need to:
% make u_ machine nameand% make p_x11
% make executables
To run FORTRAN 3D with Open Windows, it is necessary that:
Note: Do not set this variable to -lXau, or else you will receive an error message of type:
Segmentation faultin strlen when executing the main programs.
OpenWindows.FocusLenience: True OpenWindows.SetInput: followmouse
If not, the characters typed in the graphics window will be read by the alphanumeric window. For more information consult the on-line help by typing:
man olwm
Some FORTRAN library versions do not accept the writing of records larger than 16 kB. However, at INRIA we have installed:
(If this has not been done, contact Sun.)
Patch-ID# 100098-02 Keywords: Fortran records 16kb Synopsis: fixes bug in libf77 that aborts on writes >= 16kb records. Date: SunOS release: 4.1 Unbundled Product: Fortran Unbundled Release: 1.3.1 Topic: BugId's fixed with this patch: 1042114 Architectures for which this patch is available: sun3 sun4 sun386i Obsoleted by: Fortran 1.4 Problem Description: Fortran programs get segmentation violation errors (with core dumps) when writing records of 16kb or greater. This problem effects all styles of I/O except list-directed. The 1.3.1 RTF mentions I/O records longer than 8k fail unless compiled with -Bstatic. Even with -Bstatic, records larger than 16k fail. This patch basically consists of complete replacements of libF77. Installation Instructions: There are four library parts that need to replace the existing copies on the system that has the problem. If the default location was used to install Fortran, then the files that need replacing will be; /usr/lang/SC0.0/libF77.a /usr/lang/SC0.0/libF77.sa.1.1 /usr/lang/SC0.0/libF77.so.1.1 /usr/lang/SC0.0/libF77_p.a and for Sun4: /usr/lang/SC0.0/misalign/libF77.a /usr/lang/SC0.0/misalign/libF77.sa.1.1 /usr/lang/SC0.0/misalign/libF77.so.1.1 /usr/lang/SC0.0/misalign/libF77_p.a If an alternate directory structure was used the file names will be the same, but the customer will have to no where they installed Fortran. To install the patched library parts, simply rename the four files shown above and copy the four-file patch into the directory where the Fortran libraries are located.
soleil% cd /usr/lib soleil% ls -lg libc.* -rw-r--r-- 1 root daemon 658148 Feb 8 1990 libc.a -rw-r--r-- 1 root daemon 7996 Jul 25 14:34 libc.sa.1.6 -rw-r--r-- 1 root daemon 516096 Jul 25 14:18 libc.so.1.6
SunCORE is no longer maintained by Sun, however you can still use the suncore driver if so desired. In this case, it is necessary to;
% su root % cd /usr/old
Edit file install_from_old and perform the following modification:
# After : SYNC="sync" # Add : MKDIR="mkdir" % install_from_old SunCORE
/* ... */
(if not the FORTRAN compiler will encounter errors).
However, there is still a problem with SunCORE and vwsurf.screenname must be empty.
Before, when assigning
vwsurf.screenname = "/dev/fb"we created a graphics window (see SunCore Reference Manual, Appendix B, View Surface Specification for Window Devices). Apparently, this is no longer possible, even when changing the values of the vwsurf.flags. The only palliative is to call the graphics system, gfxtool.
Error message:
make toutxx make -f /usr/local/math/modulef_v93/ascii/sta/s/ppal/Makefile \ /usr/local/math/modulef_v93/sun4/sta/bin/toutxx \ F77="f77" F77FLAGS="-c -ansi -cg87 -i4 -O \ -I/usr/local/math/modulef_v93/ascii/sta/s/include" \ LINK="f77 -Bstatic" STDLIB="-lX11" \ CPPFLAGS="-L/usr/local/math/modulef_v93/sun4/sta/lib" \ F3D1="`cat /usr/local/math/modulef_v93/make/Installsun4/List_f3d1`"\ F3D2="`cat /usr/local/math/modulef_v93/make/Insta llsun4/List_f3d2`" \ ZZZZ="zzzz_mod" \ BLAS=blas_mod \ UTIL=u_sun \ ml=/usr/local/math/modulef_v93/sun4/sta/lib ms=/usr/local/math/modulef_v93/\ ascii/sta/s mi=/usr/local/math/modulef_v93 /make/Installsun4 mb=/usr/local/math/modulef_v93/sun4/sta/bin cd /usr/local/math/modulef_v93/make/Installsun4 ; f77 -c -ansi -cg87 -i4 \ -O -I/usr/local/math/modulef_v93/ascii/sta/ s/include /usr/local/math/modulef_v93/ascii/sta/s/ppal/toutxx.f /usr/local/math/modulef_v93/ascii/sta/s/ppal/toutxx.f: MAIN toutxx: force: forcel: forcth: spclel: spclrl: spclth: f77 -Bstatic -o /usr/local/math/modulef_v93/sun4/sta/bin/toutxx /usr/local/math/modulef_v93/\ make/Installsun4/toutxx.o -L/usr/local/math/modulef_v93/sun4/sta/lib -lcomp -lnop2 -ltrac -lcosd -lflui -lreso -lelas\ -lresd -lelcp -lresr -lt her -lela2 -lela3 -lmagn -lnopo -lpoba -lresb -lvis3 -lutsd -lft3d -lp_lsun4 -lp_script -lp_x11 -l_genera\ -lft3d -lzzzz_modele -lutii -lblas_mod -lu_sun -lX11 f77: Fatal error in ld: Bus error Compilation failed *** Error code 1 make: Fatal error: Command failed for target `/usr/local/math/modulef_v93/sun4/sta/bin/toutxx' Current working directory /usr/local/math/modulef_v93/make/Installsun4 *** Error code 1 make: Fatal error: Command failed for target `toutxx'
This bug was encountered on Sun,apparently, only a limited number of
object libraries can be input during linking, if the syntax
-l<library name>
.
To avoid this problem, it is necessary to use command bb elm
(see 5) to link programs toutxx and vicoxx.