[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