On 27/01/14 11:23, Darren Tucker wrote: > On Mon, Jan 27, 2014 at 12:43 PM, Darren Tucker <dtucker at zip.com.au> wrote: >> On Mon, Jan 27, 2014 at 10:50 AM, Damien Miller <djm at mindrot.org> wrote: >>>> In file included from bcrypt_pbkdf.c:34: >>>> ../crypto_api.h:17: error: syntax error before "crypto_uint32" >>>> ../crypto_api.h:17: warning: type defaults to `int' in declaration of >>>> `crypto_uint32' >>>> ../crypto_api.h:17: warning: data definition has no type or storage class >>>> bcrypt_pbkdf.c: In function `bcrypt_hash': >>>> bcrypt_pbkdf.c:70: error: `uint32_t' undeclared (first use in this function) >>> >>> I think Darren was looking at something related to the C99 int types >>> last week. >> >> Should have been fixed by >> https://anongit.mindrot.org/openssh.git/commit/defines.h?id=355f861022be7b23d3009fae8f3c9f6f7fc685f7 >> and > > the second one should have been > https://anongit.mindrot.org/openssh.git/commit/defines.h?id=acad351a5b1c37de9130c9c1710445cc45a7f6b9 > > anyway, I dug out my old sparc and I was able to reproduce that error > message with the tree before those commits and build successfully with > the most current one, so I'm pretty sure this has been fixed. > As I stated in the original mail, testing was done with gitrev 603b8f4 which is well after those changes. What old Solaris is missing is u_intXX_t, however IRIX 5.3 has both u_intXX_t (defined in <sys/types.h>) and uintXX_t (defined in <inttypes.h>). Unfortunately those headers cannot be included at the same time when using the SGI compiler. So this is the real problem: checking for inttypes.h... no ... checking for uintXX_t types in inttypes.h... yes ... It should not be looking for uintXX_t in inttypes.h if the header is unuseable (ie. ac_cv_header_inttypes_h=no). Also even if inttypes.h is available and defines uintXX_t, the source does not seem to make consistent use of it (only used in roaming_*.c). I modified configure.ac to skip the check for uintXX_t in inttypes.h and now it works with the SGI compiler. There's an unrelated include issue which prevents a complete build but the original problem is gone. -tgc