Hello,

> I seem to have 1.0.0d builds working on VMS

Great news, I would be happy to try the build with your changes.
Could you please send some instructions where the patch can be found?
Or it would be the best to post the diffs here, making available for Richard to 
merge into the code.

Thank you, Steven.

Best regards,
Z

-----Original Message-----
From: Steven M. Schweda [mailto:s...@antinode.info]
Sent: den 28 februari 2011 07:28
To: openssl-dev@openssl.org
Subject: Re: [openssl.org #2449] [BUG] openssl 1.0.0d warnings during build and 
ACCVIO on OpenVMS

   I seem to have 1.0.0d builds working on VMS with 32- or 64-bit
pointers, but I'm still waiting for some guidance on how to make some of
the needed changes:

   1. I need a macro/typedef for an integer with the same size as a
pointer.  On non-VMS systems "intptr_t" might be suitable, but not on
VMS, so it appears to me that some new OpenSSL-specific thing must be
added.  I can get it defined appropriately on VMS.  Elsewhere, I don't
care; "size_t" (as is used now), "intptr_t", whatever.  But I'd be
happier (others, too, I'd guess) if someone else chose the name,
placement, and other details.

   I've identified two places where use of "size_t" caused problems on
VMS with 64-bit pointers, "crypto/bn/bn_mont.c" and
"crypto/bn/bn_nist.c".  It might be wise to scan the code for other
inappropriate uses of "size_t", as I haven't done that.

   2. The argv-using "apps/*.c" programs need reform to use "argc"
instead of looking for a NULL terminator at the end of "argv[]".
(Looking for a NULL makes sense for "envp[]", which is expected to be
NULL-terminated, but not so much for "argv[]", where it causes bad
behavior on VMS Alpha with 64-bit pointers, and where "argc" is
obviously available and suitable.)  I've converted "apps/cms.c" and
"apps/smime.c", because those were causing test failures.  My current
scheme changes code like this:

[...]
int MAIN(int argc, char **argv)
[...]
        char **args;
[...]
        args = argv + 1;
[...]
                while (*args)   [or similar]
[...]
                        args++;
[...]

to code like this:

[...]
int MAIN(int argc, char **argv)
[...]
        int argi;
        char **args;
[...]
        argi = 1;
        args = &argv[argi])[0];
[...]
                while (argi < argc)   [or similar]
[...]
                        args = &argv[++argi];
[...]

The maintainer(s) may prefer some other scheme/details, so I'm reluctant
to fiddle with the other, similar programs in that collection until
someone higher up nods, or complains, or something.  (Also, I wouldn't
bet that any other of those programs gets tested on VMS, so there's
probably some risk in my making the changes to them.)  For the ones I
have changed, I can supply patches or whole replacement files, if anyone
is interested.

   If some decision maker can settle these pending items, then I can
pack this batch of changes into a form which might be more easily
adopted into the main code base.


   Other changes:

   I've added a C macro, OPENSSL_NO_SETVBUF_IONBF, which is defined only
on VMS, and which is used to bracket instances of "setvbuf(..., _IONBF,
...)".  On VMS, this use of setvbuf() is unsupported, and is
incompatible with 64-bit pointers.  Everyone else can ignore this new
macro, and get the same behavior as before.

   I've modified the VMS builders to allow the user to specify a path to
a zlib object library (expecting "zlib.h" to be in the same directory).

   I've also done some tidying in the VMS builders (typography, lame
code reduction, ...).

   I've added a new VMS-specific header file, "crypto/vms_rms.h" to
reduce the code clutter involved with NAM versus NAML (RMS file name)
structures (in "crypto/LPdir_vms.c" and "crypto/dso/dso_vms.c").  I use
essentially similar stuff in many other projects.  You're welcome to it.
(I haven't added a copyright heading.)

------------------------------------------------------------------------

   Steven M. Schweda               sms@antinode-info
   382 South Warwick Street        (+1) 651-699-9818
   Saint Paul  MN  55105-2547
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to