This directory and README file contains fixes for bugs or compilation problems in GENESIS version 2.2.1. If you have problems compiling GENESIS, be sure to read the file "compiling.problems" to see if there is a solution to your problem described there. Since the release of GENESIS 2.2.1, we have found the following bugs: varargs.h --------- Recent versions of the gcc compiler (version 3.3 and later) produce the errors during compilation: "GCC no longer implements ." "Revise your code to use ." This problem has been detected with SuSE Linux 8.2 and 9.0, Fedora Linux, and Mandrake Linux 9.2, but will no doubt occur with any version of Linux or UNIX that uses the newer version of the gcc compiler. The fix is to make changes in several files to replace the use of varargs.h with the proper syntax to allow the use of stdarg.h instead. This is most conveniently done by using the "patch" command with the file "varargs-genesis.patch", which was contributed by Martin Wiechert, and has been tested by several GENESIS users. Copy this file into your genesis directory (not genesis/src) and give the command patch -p1 < varargs-genesis.patch Then change into the src directory and compile as described in src/README. NOTE for Fedora 2 users: Although most Linux users can avoid installing this patch by downloading the precompiled version of GENESIS with a statically linked genesis executable, this will not run under Fedora 2. Fedora 2 uses Thread-Local Storage (TLS) files which are not compatible with programs statically linked to non-TLS library files. Fedora users report that GENESIS 2.2.1 will compile under Fedora 2 without problems, once the varargs patch has been installed. Bug fixes for the kinetics library ================================== file_info.c ----------- The file src/kinetics/file_info.c presents problems when compiling with gcc under Solaris 8 (SunOS 5.8), giving error messages such as: file_info.c: In function `do_dir_list': file_info.c:43: warning: assignment from incompatible pointer type file_info.c: In function `do_max_file_version': file_info.c:73: `ret' undeclared (first use in this function) The replacement file in the src/kinetics directory here incorporates fixes provided by Clayton Fan and Upi Bhalla that should fix this problem. It should not be necessary to install this fix for non-Solaris systems. enz.c, pool.c, reac.c, and text.c --------------------------------- These replacement files in the src/kinetics directory correct some subtle errors with the adaptive stochastic calculations which caused problems with higher-order and enzymatic reactions in the small N case. They also correct a bug which caused failure of the kinetics library on some non-Linux systems such as IRIX. These, and file_info.c, should be copied into the genesis/src/kinetics directory, before recompiling GENESIS. Fix for IBM AIX version 5 ------------------------- Cengiz Gunay reported that the following changes were needed in order to compile GENESIS under IBM AIX version 5 on a RS/6000 POWER3 machine. It turns out one needs to add a "-qcpluscmt" to CFLAGS in the Makefile for xlc (AIX's C/C++ compiler) to tolerate the "//" style comments in the source files. Also, in sprng/include/sprng.h line 29, it is necessary to wrap the #define as follows: #ifndef CHECK #define CHECK 1 #endif Otherwise it would complain that the macro CHECK has already been defined in sim/sim_defs.h, which is true. ---------------------------------------------------------------------------- Files and subdirectories in Bug-fixes: Bug-fixes.tar.gz - gzipped tar file with the contents of this directory README - this file compiling.problems - Gives the solution to problems encountered in compiling GENESIS. varargs-genesis.patch - The patch file to replace the use of varargs.h by stdarg.h (needed for gcc 3.3 and later). src/ - A subdirectory containing the patched source files for current GENESIS bug fixes. The src.tar.Z file can be extracted in your genesis directory to overwrite the old files with the corrected versions. Then you can cd to src, do a "make clean", "make", and "make install" to get a corrected version of GENESIS. This directory has the replacement files: src/kinetics: enz.c file_info.c pool.c reac.c text.c ---------------------------------------------------------------------------- Fixes for older GENESIS versions: fixes.2.2 - A subdirectory containing bug fixes for GENESIS version 2.2.1, as of January 2002. The GENESIS 2.2.1 release contains these, and more recent bug fixes. We suggest that you upgrade to 2.2.1 if you are using GENESIS 2.2 or earlier.