[Info-vax] Compatibility and 64-bit

JF Mezei jfmezei.spamnot at vaxination.ca
Sun Mar 15 17:53:56 EDT 2015


On 15-03-15 14:18, Stephen Hoffman wrote:

> So long as you're only working within your own code, sure.  Works 
> great.  Have at.

Thanks, hadn't considered that.

So in C, how can I define a pointer to be 32 bit or 64 bits ? Aren't all
pointers sizes defined by the compiler at compile time ?

I must have been asleep for a long time. I take it that C programs on
Alpha 8.3 use 32 bit pointers and apps run in 32bit mode and all the
normal systen calls made expect 32 biut pointers even if the system
itself runs in 64 bits ?

So it would be only special applications that are compiled in true 64
bit mode and they have to use different descriptor structures so that
the system services map the argument to a different structure definition
with bigger pointer ?


But going to x86 where everything will be compiled 64 bits including OS
system calls, won't that problem go away since both user programs and
system services will expect 64 bit pointers for everything ?

> Though the sizeof also changes across one of these 32-to-64-bit 
> migrations, but there are cases where compatibility is necessary across 
> versions for data structures stored in files or network packets.

But in the specific case of pointers, those would never be stored in a
file right ?

> For the modern OpenVMS time storage, proper "binary" storage is twenty 
> bytes IIRC, and not a quadword.

OK, I am way behind then.  so SYS$BINTIM now returns 20 bytes instead of
8 ?  When did that change ?





More information about the Info-vax mailing list