next up previous contents
Next: Data format questions Up: Answers to Frequently Asked Previous: Answers to Frequently Asked   Contents

Installation questions

Complete information about the installation process is found in the README files supplied with the distribution. Here we discuss only some commonly found installation problems.

Question 1   I get error messages about missing fgetpos and fsetpos routines, even though I am using the GCC compiler. How do I get around this problem?

Answer 1   We've seen this problem most often with older SUN OS 4.xx (pre-SOLARIS). These SUN systems may not have the fgetpos and fsetpos subroutines defined. Because these two routines are not currently used in the SU package, we have modified the installation process to permit the user to define a compile-time flag to circumvent this problem. Please uncomment the OPTC line in the paragraph in Makefile.config that looks like this:
# For SUN installing with GCC compiler but without GLIBC libraries
#OPTC = -O -DSUN_A -DSUN
and do a "make remake".

Question 2   I get error messages regarding missing strtoul, and/or strerror routines, even though I am using the GCC compiler. How do I get around this problem?

Answer 2   Again, this is most often seen with the older SUN OS. The fix is the same as for the previous question.

Question 3   Why do I get missing subroutine messages about ANSI C routines? Isn't the GCC compiler supposed to be an ANSI compiler?

Answer 3   The GCC compiler is just that, a compiler. It draws on the libraries that are present on the machine. If the GNU libraries (this is the "glibc" package) have not been installed, then the GCC compiler will use the libraries that are native to the machine you are running on. Because the four routines listed above are not available in the SUN 4. OS, GCC does not recognize them. However, installing the GNU libraries will make the GCC compiler behave as a full ANSI C compiler.

Question 4   Why do I get missing subroutine messages about ANSI C routines? I can't get the code to compile because my compiler can't find "bzero" or "bcopy", how can I fix this?

Answer 4   You really shouldn't be having this problem, because we try to keep to the ANSI standard, but sometimes old style function calls creep in. The problem of rooting these things out is exacerbated because many systems still support the old style calls.

If you have trouble installing because your compiler can't find "bcopy" or "bzero" make the following replacements.

Replace all statements of the form

bzero( a, b);

with statements of the form:

memset( (void *) a , (int) '\0', b );

Please replace all instances of statements of the form of:

bcopy ( a , b, c);
with a statements of the form:
memcpy( (void *) b, (const void *) a, c );


next up previous contents
Next: Data format questions Up: Answers to Frequently Asked Previous: Answers to Frequently Asked   Contents
John Stockwell 2007-04-10