Compile error

Niels Möller nisse@lysator.liu.se
11 Dec 2003 09:51:08 +0100


Sloan Bowman <smileyq@nashlinux.com> writes:

> When I try to compile lsh-1.4.3 under Solaris 8 (Sparc) I receive the
> following error. I have tried to figure this out to no end but haven't
> been able to get it working properly. Thanks for the help.
> 
> Making all in .
> make[1]: Entering directory `/export/spare/local/src/lsh-1.4.3/src'
> if gcc -DHAVE_CONFIG_H -I. -I/export/spare/local/src/lsh-1.4.3/src
> -I..  -I/export/spare/local/src/lsh-1.4.3/src -DLSH -D_GNU_SOURCE -I
> -g
> -O2 -Wall -W  -Wmissing-prototypes -Wmissing-declarations
> -Wstrict-prototypes  -Wpointer-arith -Wbad-function-cast
> -Wnested-externs -MT abstract_io.o -MD -MP -MF ".deps/abstract_io.Tpo"
> \
>    -c -o abstract_io.o `test -f 'abstract_io.c' || echo
> '/export/spare/local/src/lsh-1.4.3/src/'`abstract_io.c; \
> then mv ".deps/abstract_io.Tpo" ".deps/abstract_io.Po"; \
> else rm -f ".deps/abstract_io.Tpo"; exit 1; \
> fi
> In file included from lsh.h:27,
>                   from exception.h:27,
>                   from abstract_io.h:29,
>                   from abstract_io.c:26:
> lsh_types.h:59:3: #error No suitable type found to use for UINT32
> lsh_types.h:67:3: #error No suitable type found to use for UINT16

Something has gone wrong druing configure. config.h is supposed to
define SIZEOF_INT, SIZEOF_LONG and SIZEOF_SHORT, and then lsh_types.h
use these macros to figure out what type to use for 16- and 32-bit
numbers (the preprocessor doesn't know sizeof, so one can't use sizeof
in preprocessor directives).

Probably your config.h defines all the SIZEOF_*-macros to zero. Check
config.log to see what went wrong with the tests for int, short and
long.

(For those using lsh-1.5, I should point out that this is done
differently there).

Regards,
/Niels