I have often wondered how it is that one can actually run and play games
like Pac-Man(R) on a modern PC using the actual bit-for-bit contents of
the EPROM cartridges that I used to put into my Atari 2600 (circa 1982),
but for some reason programs written just a few years ago will neither
compile nor run on the "latest and greatest" linux/gcc systems. Am I
missing something? (Other than an enormous amount of mutually
incompatible library files that will trash my system if I install them
incorrectly?).
-James Holton
MAD Scientist
Pryank Patel wrote:
Hi all,
I've posted this in the hope that somebody in the CCP4 community may
have come across this problem and can shed some light. I've posted
this question on other lists (cnsbb, ccpnmr and aria - the reason will
become clear), but with no success so far.
I have recently acquired a Macbook Pro running OSX 10.6.3, (Kernel
version 10.3.0) and am unable to compile cns v1.21 from source, using
either the gcc 4.2.1/4.4/4.5 compilers (4.4 and 4.5 installed using
fink), and the Intel 11.1 (evaluation) compilers. I am aware that
there are Mac OSX binaries available, but I am also using CNS for NMR
structure calculation with the Aria 2.3 program, and to run that
successfully CNS needs to be re-compiled with Aria-specific source code.
With the gcc4.5 compilers, CNS compiles and links with no warnings or
errors, but fails at the execution stage. When I try to execute cns,
either with './cns' or by running one of the test scripts, I get the
following:
dmemory error code = ******
%ALLHP error encountered: fatal coding error
(CNS is in mode: SET ABORT=NORMal END)
*****************************************************
ABORT mode will terminate program execution.
*****************************************************
Program will stop immediately.
============================================================
Maximum dynamic memory allocation: 0 bytes
Maximum dynamic memory overhead: 8 bytes
Program started at: on
Program stopped at: 14:32:05 on 07-Jun-2010
CPU time used: 0.0036 seconds
============================================================
With 4.2.1 (using gfortran), CNS fails at the linking stage with
"Undefined symbols:" errors. With 4.4, CNS compiles successfully, but
when executed produces a simple "segmentation fault" message.
With the 11.1 Intel compilers, CNS compiles successfully, but fails on
execution:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line
Source
cns 000000010029C7BE _xtarmoin_ 1813
xdeclare.f
cns 000000010029C68E _xreres_ 764
xdeclare.f
cns 000000010003E04A _MAIN__ 167 cns.f
cns 000000010000184C Unknown Unknown
Unknown
cns 00000001000017E4 Unknown Unknown
Unknown
I have checked my shell stack limit, and to make sure, I set the shell
stacksize using "ulimit -s 65532" (which I believe is the upper limit
on Mac OSX) and by using the ifort linker option. Both of which made
no difference.
I then added some compiler options in an attempt to obtain more
debugging information, including "-check bounds -g" and
"-heap-arrays". The following occurs on execution:
forrtl: severe (408): fort: (2): Subscript #1 of the array HEAP has
value 155357288 which is greater than the up
per bound of 15
Image PC Routine Line Source
cns 000000010087410C Unknown Unknown
Unknown
cns 0000000100872C44 Unknown Unknown
Unknown
cns 000000010082BCCE Unknown Unknown
Unknown
cns 00000001007E36AA Unknown Unknown
Unknown
cns 00000001007E3AF7 Unknown Unknown
Unknown
cns 00000001002B48A4 _allhp_ 326 heap.f
cns 00000001002B7EC6 _heapvfy_ 93
heapvfy.f
cns 0000000100071409 _MAIN__ 60 cns.f
cns 0000000100000D5C Unknown Unknown
Unknown
cns 0000000100000CF4 Unknown Unknown
Unknown
Any help/ideas would be very much appreciated.
Best wishes,
Pryank