[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