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

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Wed Jan 6 10:45:57 EST 2016


On 2016-01-06 14:33:39 +0000, John Reagan said:

> On Tuesday, January 5, 2016 at 6:26:27 PM UTC-5, Stephen Hoffman wrote:
>> On 2016-01-05 22:39:25 +0000, hb said:
>> 
>>> 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):
>>> ...
>>> I'm sure you can rewrite the above bash commands as a DCL command> > 
>>> procedure. Yes, imgexp is available for I64 as well.
>> 
>> Um, okay.   But why would I want that, when the cited tool is already> 
>> available, already works, and already does rather more than list the> 
>> vectors?
>> 
>> You run it, and you get stub images -- shim shareable images -- ready 
>> to> link against.
> 
> The stub/shims end up with more image activations, stale/out-of-date 
> stubs, interesting unwind situations, etc.

Shimmer generates a stub shareable image, the case-sensitive tools are 
then linked against the stub, and — because the stub exactly matches 
the vector, GSMATCH, image identifier and related data — the resulting 
executable can and is then invoked directly against the original 
shareable image.  Not against the stub shareable.  Which means that 
there's no difference here around the image activation.

> However, it does prevent you from shooting yourself in the foot if you 
> think you can simply go back to an existing RTLs SYMBOL_VECTOR and add 
> alias names (hint: those alias names would go into the vector list next 
> to the main name effectively shuffling down all the other names in the 
> list).

The SSL folks have their own file-based approach that intends to avoid 
regressions; situations where the vectors get reordered or otherwise 
changed incompatibly.   This approach differs from what OpenVMS builds 
use to avoid regressions — the OpenVMS build environment shareable 
image vector anti-regression tool is what y'all are using as part of 
the OpenVMS builds — but it works.  Ask RB about the OpenVMS tool, if 
you don't already know about it.  RB wrote it, IIRC.   Shimmer uses the 
OpenVMS SSL data to confirm the vector order, in addition to reading 
off the contents of the Alpha or Itanium shareable image header and 
shareable image transfer vector.

> We simply cannot go back to the SLL shareable image and add the alias 
> names in the standard fashion, right?

It'd be nice to have a Linker change that upcases the symbols read in 
unless CASE_SENSITIVE=YES was in play, but that's both more flexible 
and rather more like work.   As for this case, add the 
case-differentiated entries at the end of the vector, if you don't want 
to also bump the major version.   It'd be nice if they were adjacent, 
but — unless the mess with BACKUPSHR some years ago wasn't enough of a 
lesson — it's definitely not necessary.

But then there are more than a few swamp-draining opportunities here, 
with TLS and certificates and passwords and the rest, not to mention 
SSIO et al.   It's a quagmire extraordinaire.



-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list