[Info-vax] cURL/libcurl 7.46 PCSI kits available.
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Tue Jan 5 12:03:11 EST 2016
On 2016-01-05 14:51:31 +0000, John Reagan said:
> The best solution would be to add the above directives to the OpenSSL
> .h headers guarded with defined(__vms).
One of the best available solutions uses the Shimmer tool to create
some stub images.
http://labs.hoffmanlabs.com/node/1906
I'd hope that some future SSL port uses alias entries. Linker alias
entries? What are those?
>From http://h71000.www7.hp.com/doc/83final/4548/4548pro_029.html
"This example creates a symbol vector or a shareable image with all the
symbols in the GST as lowercase and uppercase names. This is useful if
applications built in the traditional way (compilers uppercase global
names) and built as in the Open Source environment (global names as-is)
link against that shareable image."
Alas, the new SSH1 kit doesn't use these linker aliases, either. It's
all uppercase.
> Looking at the the OpenSSL source kit, I already see uses of __vms,
> __sparc, etc. in the headers.
If previous investigations into older open-source ports to OpenVMS are
any guide, probably more than a little of the OpenVMS-conditionalized
code is already unnecessary, too. More of that code can be removed as
C99 and C11 and some of the more common Linux and BSD calls become
available on OpenVMS, too.
> Surely one more change would be reasonable to those gate keepers?
Maybe somebody updates the build procedures to use the alias entries?
That's all VMS-specific code, so the upstream folks will be less
concerned about the implications of changes in that.
> and if you are relying on HPE or VSI to "port" it, could they/we add
> this to the headers for our kits?
That'll work, too. But now you're maintaining divergent and
platform-specific header files, rather than maintaining and updating an
existing and platform-specific build procedure that drives this.
> After all, somebody has to create the symbol vector in the linker option file.
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.
> "Portable" code is often "ported" code all stuffed into the same source
> file. (I've had to add a few defined(__vms) uses to LLVM for example).
Ayup, particularly when the target platform is missing more than a few
pieces, or when there was some reason not to ditch compatibility with
an ancient release. But that's fodder for another time.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list