OpenSSL 1.0.0-beta2 builds and passes all of its self-tests on OpenVOS
Release 17.0.1ap.  Note that this is a 32-bit, Big-Endian, Intel Xeon(r)
implementation. (We have our own port of GCC that produces big-endian
x86 code; write me for details).

The relevant lines in the Configure script are the "vos-gcc" and
"debug-vos-gcc" lines.

Here are the parameter settings that I used.

Configuring for vos-gcc
    no-asm          [option]   OPENSSL_NO_ASM
    no-dso          [option]
    no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
    no-hw           [option]   OPENSSL_NO_HW
    no-idea         [option]   OPENSSL_NO_IDEA (skip dir)
    no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
    no-krb5         [krb5-flavor not specified] OPENSSL_NO_KRB5
    no-mdc2         [default]  OPENSSL_NO_MDC2 (skip dir)
    no-rc5          [option]   OPENSSL_NO_RC5 (skip dir)
    no-rfc3779      [default]  OPENSSL_NO_RFC3779 (skip dir)
    no-shared       [option]
    no-store        [experimental] OPENSSL_NO_STORE (skip dir)
    no-threads      [option]
    no-zlib-dynamic [default]
IsMK1MF=0
CC            =gcc
CFLAG         =-DZLIB -O3 -Wall -D_POSIX_C_SOURCE=200112L -D_BSD
-DB_ENDIAN
EX_LIBS       =-Wl,-map -L/Languages/Green/test_ssl/2.1.p4be/zlib -lz
CPUID_OBJ     =mem_clr.o
BN_ASM        =bn_asm.o
DES_ENC       =des_enc.o fcrypt_b.o
AES_ENC       =aes_core.o aes_cbc.o
BF_ENC        =bf_enc.o
CAST_ENC      =c_enc.o
RC4_ENC       =rc4_enc.o rc4_skey.o
RC5_ENC       =rc5_enc.o
MD5_OBJ_ASM   =
SHA1_OBJ_ASM  =
RMD160_OBJ_ASM=
CMLL_ENC=     =camellia.o cmll_misc.o cmll_cbc.o
PROCESSOR     =
RANLIB        =/libraries/vos/17.0/p4be_compiler_pool.p4be/ranlib.pm
ARFLAGS       =
PERL          =perl.pm
THIRTY_TWO_BIT mode
BN_LLONG mode
RC4_CHUNK is undefined

We get a two types of compiler warnings:

tb_asnmth.c: In function `ENGINE_get_pkey_asn1_meth_str':
tb_asnmth.c:192: warning: implicit declaration of function `strncasecmp'
ameth_lib.c: In function `EVP_PKEY_asn1_find_str':
ameth_lib.c:232: warning: implicit declaration of function `strncasecmp'
v3_ncons.c: In function `nc_dns':
v3_ncons.c:404: warning: implicit declaration of function `strcasecmp'
v3_ncons.c: In function `nc_uri':
v3_ncons.c:490: warning: implicit declaration of function `strncasecmp'
ui_openssl.c:125:1: warning: "_POSIX_C_SOURCE" redefined
<command line>:2:1: warning: this is the location of the previous
definition
ca.c: In function `make_revocation_str':
ca.c:2722: warning: implicit declaration of function `strcasecmp'
apps.c:112:1: warning: "_POSIX_C_SOURCE" redefined
<command line>:3:1: warning: this is the location of the previous
definition

We declare the strcasecmp and strncasecmp functions in the <strings.h>
header file, per POSIX, but apparently OpenSSL never includes it. Since
the compiler's default prototype for str(n)casecmp is fine, I've ignored
this error.

We require our users to define the _POSIX_C_SOURCE macro if they wish to
use our POSIX libraries, so the compiler displays a warning message if
it finds a duplicate definition of _POSIX_C_SOURCE.  This error could be
eliminated by the following two changes.

        In openssl/crypto/ui/ui_openssl.c (line 125):

        Is:     #define _POSIX_C_SOURCE 1   *** see note below ***

        Change to:
                #ifndef _POSIX_C_SOURCE
                #define _POSIX_C_SOURCE 2
                #endif

        *** note *** I believe that "1" is not a valid value for the
_POSIX_C_SOURCE macro.  The valid values are 2, 199309L, 199506L and
200112L.  Having said this, I think that most compilers will treat this
as if no value had been specified.  Also note that this macro is
supposed to be defined before the first header is included, and this
source program violates that condition.  This is a more important
restriction.  See
http://www.opengroup.org/onlinepubs/009695399/xbd_chap02.html#tag_02_02_
01.  If you want this program to be able to use any of the features that
were added in the POSIX-1993, POSIX-1995, or POSIX-2001 standards, then
you should use the appropriate, higher, value.

        In openssl/apps/apps.c (line 112):

        Is:     #define _POSIX_C_SOURCE 2

        Change to:
                #ifndef _POSIX_C_SOURCE
                #define _POSIX_C_SOURCE 2
                #endif

        *** This source program uses a valid value, and defines it
before it includes the first header. Please give yourself a gold star.


Thanks
PG
--
Paul Green, Senior Technical Consultant, Stratus Technologies.
Voice: +1 978-461-7557; FAX: +1 978-461-3610; Mobile: +1 (978) 235-2451;
AIM: PaulGreen

Reply via email to