I am now building OpenSSL with non-default arguments, and am thus seeing a new build error on Tru64 v5.1:
cc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -DOPENSSL_THREADS -pthread -DDSO_DLFCN -DHAVE_DLFCN_H -std1 -tune host -fast -readonly_strings -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DGHASH_ASM -c -o randfile.o randfile.c cc: Warning: randfile.c, line 63: The redefinition of the macro "_XOPEN_SOURCE" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) #define _XOPEN_SOURCE 500 ----------------------^ cc: Error: /usr/include/sys/stat.h, line 204: Missing type specifier or type qualifier. (missingtype) __F64_STAT --------^ cc: Error: /usr/include/sys/stat.h, line 204: Missing type specifier or type qualifier. (missingtype) __F64_STAT --------^ <builtin>: recipe for target 'randfile.o' failed make[2]: *** [randfile.o] Error 1 make[2]: Leaving directory '/tmp/openssl/crypto/rand' This occurs because randfile.c #defines _XOPEN_SOURCE after #including system headers via e_os.h. If I do this change... --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -56,13 +56,13 @@ * [including the GNU Public Licence.] */ -#include "e_os.h" - /* We need to define this to get macros like S_IFBLK and S_IFCHR */ #if !defined(OPENSSL_SYS_VXWORKS) #define _XOPEN_SOURCE 500 #endif +#include "e_os.h" + #include <errno.h> #include <stdio.h> #include <stdlib.h> ...then the file compiles correctly. But this is not exactly a fix, because OPENSSL_SYS_VXWORKS is defined (if applicable) in e_os.h/e_os2.h. By the way, just to correct the record, Tru64 v5.1 *does* have IPPROTO_IPV6. I somehow missed this when I was testing the cpp logic earlier. --Daniel -- Daniel Richard G. || sk...@iskunk.org My ASCII-art .sig got a bad case of Times New Roman. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org