Home | About CCP4 | CCP4 Projects | Downloads | Documentation | Courses | Developers | CCP4 people | WG1/WG2 | Privacy |
---|
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.
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 1024The stacksize can be set to the hard limit of the system with
unlimit stacksizeor to a specific value with
limit stacksize 131072Alternatively, the program can be re-compiled with the -static flag which should reduce the stack requirement of the program.
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 1This 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)
The move of CCP4 to the F90 compilers under IRIX is an ongoing process. These are points which have been noted:
The problem is that for SUN OS F77 *1 is not a legitimate size for INTEGER.
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.
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)
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.
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.
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.