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. || [email protected]
My ASCII-art .sig got a bad case of Times New Roman.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]