Opened 12 years ago
Closed 12 years ago
#4475 closed Patches (fixed)
OpenVMS patch for 64 bit support
Reported by: | Owned by: | az_sw_dude | |
---|---|---|---|
Milestone: | Boost 1.44.0 | Component: | date_time |
Version: | Boost 1.44.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Hello,
This patch provides 64 bit fixes for OpenVMS platform.
It is very important for the organization I work for to submit them to upstream Boost in order to make an upgrade to future Boost versions simpler.
This patch related to ticket: #4473
Thanks,
Artyom
Attachments (1)
Change History (5)
by , 12 years ago
Attachment: | date_time.patch added |
---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
The problem is that VMS allows mixed 32 and 64 bit pointers (something like DOS's near/far) and some system functions - in this case localetime_r, accept only 32 bit pointers while most accept both type of pointer.
What happens is that I need to pass 32 bit pointer to the function to make sure it works. Result is 64 bit pointer so I can't pass it as is. So I create a local variable tmp that is placed on stack. And it is promised that stack is always placed in 32bit region so I can relate on the fact that the pointer would be 32bit pointer.
And after I get the result I can copy it to the location of 64 bit pointer.
This is quite ugly but that is how OpenVMS works.
Thanks,
Artyom
comment:4 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
You propose the following structure:
Why not this instead? That is, why is
tmp
needed?