From: Richard Levitte <[email protected]>
To: [email protected], 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 [email protected]
Automated List Manager [email protected]