Node:Build Problems, Previous:Building, Up:Installation
The most common problem you will encounter is an internal compiler error
from gcc. If you are not running gcc-2.95.2 or later, you will very
likely experience internal compiler errors when building SFS and need to
upgrade the compiler. You must make clean
after upgrading the
compiler. You cannot link object files together if they have been
created by different versions of the C++ compiler.
On OSF/1 for the alpha, certain functions using a gcc extension called
__attribute__((noreturn))
tend to cause internal compiler errors.
If you experience internal compiler errors when compiling SFS for the
alpha, try building with the command make
ECXXFLAGS='-D__attribute__\(x\)='
instead of simply make
.
Sometimes, a particular source file will give particularly stubborn
internal compiler errors on some architectures. These can be very hard
to work around by just modifying the SFS source code. If you get an
internal compiler error you cannot obviously fix, try compiling the
particular source file with a different level of debugging. (For
example, using a command like make sfsagent.o CXXDEBUG=-g
in the
appropriate subdirectory.)
If your /tmp
file system is too small, you may also end up
running out of temporary disk space while compiling SFS. Set your
TMPDIR
environment variable to point to a directory on a file
system with more free space (e.g., /var/tmp
).
You may need to increase your heap size for the compiler to work. If
you use a csh-derived shell, run the command unlimit datasize
.
If you use a Bourne-like shell, run ulimit -d `ulimit -H -d`
.
On some operating systems, some versions of GMP do not install the
library properly. If you get linker errors about symbols with names
like ___gmp_default_allocate
, try running the command
ranlib /usr/local/lib/libgmp.a
(substituting wherever your GMP library is installed for
/usr/local
).