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 In file included from exception.h:27, from abstract_io.h:29, from abstract_io.c:26: lsh.h:96: parse error before "UINT32" lsh.h:96: warning: no semicolon at end of struct or union lsh.h:98: warning: type defaults to `int' in declaration of `length' lsh.h:98: warning: data definition has no type or storage class lsh.h:100: parse error before '}' token In file included from exception.h:30, from abstract_io.h:29, from abstract_io.c:26: exception.h.x:8: parse error before "UINT32" exception.h.x:8: warning: no semicolon at end of struct or union exception.h.x:10: parse error before '}' token exception.h.x:66: parse error before "UINT32" exception.h.x:66: warning: no semicolon at end of struct or union exception.h.x:67: warning: type defaults to `int' in declaration of `value' exception.h.x:67: warning: data definition has no type or storage class exception.h.x:69: parse error before '}' token exception.h.x:91: field `super' has incomplete type exception.h.x:92: parse error before "UINT32" exception.h.x:92: warning: no semicolon at end of struct or union In file included from abstract_io.h:29, from abstract_io.c:26: exception.h:170: parse error before "mask" exception.h:171: warning: function declaration isn't a prototype exception.h:182: parse error before "type" exception.h:182: warning: function declaration isn't a prototype exception.h:205: parse error before "reason" exception.h:205: warning: function declaration isn't a prototype In file included from abstract_io.h:32, from abstract_io.c:26: abstract_io.h.x:63: parse error before "UINT32" abstract_io.h.x:63: warning: no semicolon at end of struct or union In file included from abstract_io.c:29: abstract_io.h.x:74: sizeof applied to an incomplete type make[1]: *** [abstract_io.o] Error 1 make[1]: Leaving directory `/export/spare/local/src/lsh-1.4.3/src' make: *** [all-recursive] Error 1
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