[Info-vax] Update Kit for OpenVMS 9.1 released today

John Reagan xyzzy1959 at gmail.com
Sun Aug 22 20:00:43 EDT 2021


On Sunday, August 22, 2021 at 10:12:42 AM UTC-4, ^P wrote:
> On Sunday, August 22, 2021 at 3:45:07 PM UTC+2, Mark Daniel wrote: 
> > On 22/8/21 10:37 pm, Craig A. Berry wrote: 
> > > 
> > > On 8/22/21 7:24 AM, ^P wrote: 
> > >> Is there any defined date when x86 version of VMS can be available to 
> > >> non-customer i.e hobbyist or similar? 
> > > 
> > > All of the field test docs refer only to "customers" so my unofficial 
> > > guess would be that the v9.2 production release is the earliest that's 
> > > likely to be available under the community license. You can read the 
> > > roadmap yourself for when that's scheduled to happen. 
> > >> In the meantime, can someone please provide a VMS x86 binary for 
> > >> analysis? 
> > > 
> > > Not legally, no. 
> > Binaries are provided all the time, e.g. freeware ... 
> > 
> > https://www.theberrymans.com 
> > 
> > How is x86-64 any different? 
> > 
> > https://wasd.vsm.com.au/wasd_tmp/ 
> > 
> > Usual disclaimers apply. 
> > 
> > -- 
> > Anyone, who using social-media, forms an opinion regarding anything 
> > other than the relative cuteness of this or that puppy-dog, needs 
> > seriously to examine their critical thinking.
> Many thanks you for the links, I haven't seen any x86 freeware until now
> > How is x86-64 any different?
> This is the question I want to know the answer to. 
> 
> If anyone happen to know any freeware binary/executable that uses MMX, SSE, AVX instructions, please let me know. 
> 
> Regards., Peter
We use the base AMD64 calling convention 

 call->setCallingConv(CallingConv::X86_64_SysV);

In LLVM-speak.

On top of that, we use the AH register for an arg-count.  Only AL is used in the base calling convention so our use of AH should be upward compatible.

Our memory model is a blend.  It isn't exactly "short", "medium", or "large".  Since we have static data and stacks in 32-bit space but code in 64-bit space, we access all static data through the GOT (which is more than what "medium" would suggest).  And since routines in the same module might be in PSECTs that are far apart, we always go through the GOT for that as well.  Same with literal pools (we move them into the code psect since our linker doesn't do SHT_MERGE).  

But in general, you can move things back and forth easily.  You can take OpenVMS-created objects and link/execute them on Linux.  The other way works as well (that is how we bootstrapped a recent clang/LLVM to OpenVMS x86).  

I gave a presentation at an LLVM conference a few years back.  https://www.youtube.com/watch?v=fiZwCLbJNSI

We only support PIC, use sse2.1 and higher for floating.

If you have questions, ask.



More information about the Info-vax mailing list