From: Richard Levitte <rich...@levitte.org>
To:     openssl-dev@openssl.org, sms@antinode-info

   R:

   I'm subscribed to the list, so the extra copy isn't needed.

> about your latest changes, it seems that it has SSL_LIBCRYPTO32.OLB
> and SSL_LIBSSL32.OLB as default names (when have specified "" for the
> bits parameter)...  is that your intention?  I find it a bit
> confusing, I'd rather expect something like this:
> 
> bits="" => SSL_LIBCRYPTO.OLB, SSL_LIBSSL.OLB
> bits="32" => SSL_LIBCRYPTO32.OLB, SSL_LIBSSL32.OLB
> bits="64" => SSL_LIBCRYPTO64.OLB, SSL_LIBSSL64.OLB

   So far as I know, there is no difference between the results you get
from specifying "" and those you get from specifying "32", so I didn't
try to name then differently.  I believe that the default, 
/NOPOINTER_SIZE, and an explict /POINTER_SIZE=32 differ only in that
/POINTER_SIZE=32 enables the use of features like "#pragma
pointer_size", and we use these (even indirectly) only in the
64-bit-pointer case.  On my VAX (V7.3) system, where there is no
/[NO]POINTER_SIZE option, HP uses the "32" names for the shared images:

Directory SYS$COMMON:[SYSLIB]

SSL$LIBCRYPTO_SHR32.EXE;1
                         1653   1-APR-2004 11:05:45.08  (RWED,RWED,RE,RE)
SSL$LIBSSL_SHR32.EXE;1
                          381   1-APR-2004 11:06:00.95  (RWED,RWED,RE,RE)

On my non-VAX systems (Alpha V8.3 shown here), I see:

Directory SYS$COMMON:[SYSLIB]

SSL$LIBCRYPTO_SHR.EXE;1
                         3139   9-JUN-2006 09:49:15.55  (RWED,RWED,RE,RE)
SSL$LIBCRYPTO_SHR32.EXE;1
                         3055   9-JUN-2006 09:49:58.37  (RWED,RWED,RE,RE)
SSL$LIBSSL_SHR.EXE;1
                          492   9-JUN-2006 09:49:15.55  (RWED,RWED,RE,RE)
SSL$LIBSSL_SHR32.EXE;1
                          483   9-JUN-2006 09:49:58.82  (RWED,RWED,RE,RE)

So, my plan was to follow this scheme, and have a "32" at the end of all
the 32-bit-pointer (.EXE and .OLB) names, and nothing in the
64-bit-pointer names.  But I'm open to a good argument for any other
reasonable scheme.  (At least, with the "SSL_" prefixes, we can
distinguish the new (no "32") 64-bit stuff from the old (no "32") 32-bit
stuff.  Everything's complicated.)


> Also, it seems that /POINTER_SIZE=64=ARGV isn't supported with HP C
> 7.1.  I get this when trying to build the test programs with your
> latest scripts, once for each file:
> 
> %DCL-W-NOVALU, value not allowed - remove value specification
>  \64=\
> 
> And indeed, I can't find that in the help file either...
> 
> $ cc/ver                    
> HP C V7.1-015 on OpenVMS Alpha V8.3    

   That's depressing.  My first impulse is to say that 64-bit pointers
require a newer compiler.  It's possible that the "=ARGV" isn't really
needed, but I thought that that was the cure for the "ACCVIO" in the
subject line of this thread.  I'll go back and check, but I believe that
without the "=ARGV", the libraries and shared images may be ok, but all
the main programs (openssl itself, and some/all of the tests?) will
explode when they start passing 32-bit argv[] pointers around to
consumers who expect 64-bit pointers.  (HP supplies only one
OPENSSL.EXE, and I'd bet that it's a 32-bit-pointer edition.)

   If the "=ARGV" really is needed to make the main programs work, then
we can either require a newer compiler, or, perhaps, do more/different
argv[] copying (on VMS) to provide a 64-bit argv[] when the C
environment won't.  (Which doesn't sound to me like much fun.)

   On a related topic, for those who haven't followed it, the ITRC
discussion of the bad-argv[]-termination problem seems to have come to
rest:

http://forums.itrc.hp.com/service/forums/questionanswer.do?threadId=1472203

The conclusion seems to be that the problem originally affected both
Alpha and IA64, and that there was an ECO to fix the problem on IA64
(June 2010, which I seem to have installed on my IA64 systems), but none
(yet) for Alpha.  (Not enough complaints from paying Alpha customers, I
assume.)  The existing work-around in "apps/openssl.c" is conditional
only on OPENSSL_SYS_VMS, so we should be safe everywhere.  (And it
wastes only a very little time when it's not needed.)

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

Reply via email to