Collaborative Computational Project No. 4
Software for Macromolecular X-Ray Crystallography

Known Problems on IRIX platforms

These are the known problems with the CCP4 suite when installed on specific IRIX systems. Where appropriate fixes are also given.



Problems under IRIX 6.*

n32 vs. o32

As of CCP4 4.2, the default for compiling CCP4 under IRIX 6.5 is to use the -n32 option (new 32-bit ABI) for 32-bit compilation. Older versions of IRIX 6.* continue to use the -(o)32 compiler option (old 32-bit ABI).

To generate Makefiles with n32 rather than o32 on these older systems, run configure as usual, to get a config.status file. Edit the config.status file changing all -32 to -n32 (in the XFFLAGS and XCFLAGS entries for example). Some other compiler options will need to be changed, e.g. -Olimit 1250 becomes -OPT:Olimit=1250. Then execute config.status to generate Makefiles again with the correct flags.

[Back to top]


Programs fail due to insufficient stacksize

Compiling certain programs may produce a warning like:

Warning: Stack frame size (84000384) larger than system limit (65536)
(unless warnings suppressed with -w) and at run-time it will fail immediately with messages like: Segmentation error or Memory fault before there is any output from the program itself. This has been known to happen with MOLREP, PROFESSS and probably others.

This means that the stack requirement of the program is larger than that allowed by the system. The latter can be checked by using the command "limit" (within (t)csh at least) which will produce something like:

cputime         unlimited
filesize        unlimited
datasize        unlimited
stacksize       65536 kbytes
coredumpsize    0 kbytes
memoryuse       235680 kbytes
vmemoryuse      unlimited
descriptors     200 
threads         1024 
The stacksize can be set to the hard limit of the system with
unlimit stacksize
or to a specific value with
limit stacksize 131072
Alternatively, the program can be re-compiled with the -static flag which should reduce the stack requirement of the program.

Refmac fails to compile using MIPSpro 7.2.1.x

date: 28-06-02
version: CCP4 v4.2

CCP4 v4.2 Refmac5 can fail to compile using the 7.2.1.3m compilers. The resulting error is

### Assertion failure at line 629 of ../../common/com/stab.c:
### Compiler Error during Scope Setup phase:
### overflowed maximum number of types
f77 INTERNAL ERROR:  /usr/lib32/cmplrs/mfef77 returned non-zero status 1
This is an internal compiler error caused by the resources required by make_lib.f . The problem is fixed in CCP4 v4.2.1 (July 2002). For 4.2 the solution is to split make_lib.f into smaller compilation units. This will also require the editing of the Makefiles.

(Thanks to Mogen Kjaer)

[Back to top]


Compilation under F90

The move of CCP4 to the F90 compilers under IRIX is an ongoing process. These are points which have been noted:

BYTE/INTEGER*1

Several CCP4 programs and libraries use the BYTE data type: This is not supported by IRIX F90. In most cases replacing BYTE by INTEGER*1 will suffice. m4 takes care of this for unix.m4.

The problem is that for SUN OS F77 *1 is not a legitimate size for INTEGER.

[Back to top]


Compilation under gcc 3.0.1

There are many problems when installing CCP4 6.0 using this compiler. If you want to install using this compiler, Kevin Cowtan has provided a hacked configure file available from here that will install all of the C and C++ programs but not the fortran programs. You will need to replace your version of configure with this one and then compile as usual.

[Back to top]


TMPDIR not defined

We have had several reports of compilation failing on IRIX with Error Code 127 (bu21), or Error Code 2 (bu21). Sometimes this will be accompanied with TMPDIR undefined. The solution is to set TMPDIR during the configuration, eg

configure irix64 --with-x --tmpdir=/tmp/XXX
(Thanks to Jonathon Dill)

[Back to top]


Problems with specific programs under n32/64 bit compilation

1. amore: in some circumstances, TABLES generated by amore compiled under n32 may behave differently to those generated by amore compiled under o32, and may give different results.

This appears to be a problem with an incompatibility between amore's source code and SGI's MIPSpro compiler 7.3x in -n32 mode. At present the ``fix'' is to use the o32 version of amore.

[Back to top]



Problems under IRIX 5.3


Maplib compilation fails

The problem is that the library cannot build, and complains about long subroutine names when compiling maplib.

The fix is to delete line 348 of maplib.f, and on line 2951 replace ccp4_map_write_open_header_by_name by the original name MWRHDL, and recompile.

[Back to top]


Include files for library compilation

The compiler for 5.3 doesn't recognise the -I switch, and hence can't find the include files (the .fh and .inc files) for cciflib.f and harvlib.f

The solution is to replace all instances of "-I" in $CCP4/lib/src/Makefile with "-Wf,-I" which is the correct switch.

[Back to top]