[Info-vax] cURL/libcurl 7.46 PCSI kits available.

hb end.of at inter.net
Tue Jan 5 17:39:25 EST 2016


On 01/05/2016 06:03 PM, Stephen Hoffman wrote:
> Yeah; then there was some schmuck that spent a couple of weeks
> reverse-engineering the executable images and the vectors to write a
> tool that rewrites the vectors, so that piles of other code didn't need
> to be redone.

The imgexp tool (in the VMS Objects and Images Tools, VOIT) lists the
symbol vector like this (I don't know how this will be wrapped in your
newsreader):

$ mc [.usrexe]imgexp -v sys$share:SSL$LIBSSL_SHR.EXE
Image Exports (Alpha), version 1.7
MATEQU, 0, 970
ERR_LOAD_SSL_STRINGS, type is procedure, offset: 0x0, value: 0x5a0
SSL_CIPHER_DESCRIPTION, type is procedure, offset: 0x10, value: 0x4610
SSL_CTX_ADD_CLIENT_CA, type is procedure, offset: 0x20, value: 0x37d0
SSL_CTX_ADD_SESSION, type is procedure, offset: 0x30, value: 0x4b00
SSL_CTX_CHECK_PRIVATE_KEY, type is procedure, offset: 0x40, value: 0x3290
SSL_CTX_CTRL, type is procedure, offset: 0x50, value: 0x3120
SSL_CTX_FLUSH_SESSIONS, type is procedure, offset: 0x60, value: 0x4a10
...

If someone wants to [re-]write a linker options file for an existing
shareable image a couple of bash command lines will do it.

bash-4.3$ usrexe/imgexp -v /sys\$share/SSL\$LIBSSL_SHR.EXE |grep -m1 MAT
|sed s/MAT/GSMATCH=/ >old.opt
bash-4.3$ echo "CASE_SENSITIVE=YES" >>old.opt
bash-4.3$ usrexe/imgexp /sys\$share/SSL\$LIBSSL_SHR.EXE |grep "type is "
|awk '{print "symbol_vector=("$1 "=" toupper($4)")"}' |sed
s/,//g >>old.opt
bash-4.3$ head old.opt
GSMATCH=EQU, 0, 970
CASE_SENSITIVE=YES
symbol_vector=(ERR_LOAD_SSL_STRINGS=PROCEDURE)
symbol_vector=(SSL_CIPHER_DESCRIPTION=PROCEDURE)
symbol_vector=(SSL_CTX_ADD_CLIENT_CA=PROCEDURE)
symbol_vector=(SSL_CTX_ADD_SESSION=PROCEDURE)
symbol_vector=(SSL_CTX_CHECK_PRIVATE_KEY=PROCEDURE)
symbol_vector=(SSL_CTX_CTRL=PROCEDURE)
symbol_vector=(SSL_CTX_FLUSH_SESSIONS=PROCEDURE)
symbol_vector=(SSL_CTX_FREE=PROCEDURE)
bash-4.3$

If someone wants to add lowercase alias entries to the symbol vector
options, the last bash command should look like

bash-4.3$ usrexe/imgexp /sys\$share/SSL\$LIBSSL_SHR.EXE |grep "type is "
|awk '{print "symbol_vector=("tolower($1)"/"$1 "=" toupper(
$4)")"}' |sed s/,//g >>new.opt
bash-4.3$ head new.opt
GSMATCH=EQU, 0, 970
CASE_SENSITIVE=YES
symbol_vector=(err_load_ssl_strings/ERR_LOAD_SSL_STRINGS=PROCEDURE)
symbol_vector=(ssl_cipher_description/SSL_CIPHER_DESCRIPTION=PROCEDURE)
symbol_vector=(ssl_ctx_add_client_ca/SSL_CTX_ADD_CLIENT_CA=PROCEDURE)
symbol_vector=(ssl_ctx_add_session/SSL_CTX_ADD_SESSION=PROCEDURE)
symbol_vector=(ssl_ctx_check_private_key/SSL_CTX_CHECK_PRIVATE_KEY=PROCEDURE)
symbol_vector=(ssl_ctx_ctrl/SSL_CTX_CTRL=PROCEDURE)
symbol_vector=(ssl_ctx_flush_sessions/SSL_CTX_FLUSH_SESSIONS=PROCEDURE)
symbol_vector=(ssl_ctx_free/SSL_CTX_FREE=PROCEDURE)
bash-4.3$

I'm sure you can rewrite the above bash commands as a DCL command
procedure. Yes, imgexp is available for I64 as well.



More information about the Info-vax mailing list