X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=e_os.h;h=914a2bf4acac8a885b1ef5bc811360eaa488a507;hp=eafa8623aabe4ca009c254353636e0310d2add36;hb=516decaef31a13e5bf1b6f855dc0fefe23d7eed9;hpb=d913a0557f040e54120d028ced0a29767f7b12bb diff --git a/e_os.h b/e_os.h index eafa8623aa..914a2bf4ac 100644 --- a/e_os.h +++ b/e_os.h @@ -29,6 +29,33 @@ extern "C" { # endif # endif +/* + * Format specifier for printing size_t. Original conundrum was to + * get it working with -Wformat [-Werror], which can be considered + * overzelaous, especially in multi-platform context, but it's + * conscious choice... + */ +# if defined(_WIN64) +# define OSSLzu "I64u" /* One would expect _WIN{64|32} cases after + * __STDC_VERSION__, but there are corner + * cases of MinGW compilers that link with + * non-compliant MSVCRT.DLL... */ +# elif defined(_WIN32) +# define OSSLzu "u" +# elif defined(__VMS) +# define OSSLzu "u" /* VMS suffers from similar problem as MinGW, + * i.e. C RTL falling behind compiler. Recall + * that sizeof(size_t)==4 even in LP64 case. */ +# elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +# define OSSLzu "zu" +# elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__==4 +# define OSSLzu "u" /* 'lu' should have worked, but when generating + * 32-bit code gcc still complains :-( */ +# else +# define OSSLzu "lu" /* To see that is works recall what does L + * stand for in ILP32 and LP64 */ +# endif + # if !defined(NDEBUG) && !defined(OPENSSL_NO_STDIO) # define REF_ASSERT_ISNT(test) \ (void)((test) ? (OPENSSL_die("refcount error", __FILE__, __LINE__), 1) : 0) @@ -61,7 +88,7 @@ extern "C" { # define DEVRANDOM_EGD "/var/run/egd-pool","/dev/egd-pool","/etc/egd-pool","/etc/entropy" # endif -# if defined(OPENSSL_SYS_VXWORKS) +# if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) # define NO_SYS_PARAM_H # define NO_CHMOD # define NO_SYSLOG @@ -513,6 +540,10 @@ struct servent *getservbyname(const char *name, const char *proto); #define OSSL_NELEM(x) (sizeof(x)/sizeof(x[0])) +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define CRYPTO_memcmp memcmp +#endif + #ifdef __cplusplus } #endif