Modulefpreviousupnextcontents[BIG][Normal][small]
Next: E Link library list Up: D Installation: UNIX Prev: D.1 Execution of Makefile on HP-UX Contents


D.2 Possible problems

D.2.1 Compilation problems for C programs

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 name
and restart the make to perform the linking process:
make executables

D.2.2 Library compilation

 

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.

D.2.3 Execution of program procat

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.

D.2.4 Unsatisfied references during linking

The unsatisfied references may either be system functions (x11 libraries, ...), or MODULEF procedures.

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:

D.2.5 Problems on Sun 4

Utilization of Open Windows

To run FORTRAN 3D with Open Windows, it is necessary that:

  1. variable STDLIB is set to -L/usr/openwin/lib -lX11

    Note: Do not set this variable to -lXau, or else you will receive an error message of type:

    Segmentation fault
    in strlen when executing the main programs.

  2. Insert the following statements in file /.Xdefaults:

       
    
    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

Problems during a FORTRAN write

Some FORTRAN library versions do not accept the writing of records larger than 16 kB. However, at INRIA we have installed:

  1. the patch described below, and
  2. a correct version of library libc (see page gif).

    (If this has not been done, contact Sun.)

with the SunOS Release 4.1 system and the Fortran 1.3.1. compiler.

  1. 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.
    

  2.  

    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
    

Utilization of the graphics peripheral: sun_core

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;

  1. Install SunCORE as follows:

       % 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
    

  2. Check the access rights of directory /usr/include/f77 and file usercore77.h (if not the compiler cannot read this file).

  3. Put a C in the first columns of the Copyright delimited by /* ... */ (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.

toutxx and vicoxx link:

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.


Modulefpreviousupnextcontents[BIG][Normal][small]
Next: E Link library list Up: D Installation: UNIX Prev: D.1 Execution of Makefile on HP-UX Contents