This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: fix posixmodule for 64-bit systems (mainly Win64)
Type: Stage:
Components: None Versions:
process
Status: closed Resolution:
Dependencies: Superseder:
Assigned To: fdrake Nosy List: fdrake, tim.peters, tmick
Priority: normal Keywords: patch

Created on 2000-06-07 03:03 by tmick, last changed 2022-04-10 16:02 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
None tmick, 2000-06-07 03:03 None
Messages (7)
msg32730 - (view) Author: Trent Mick (tmick) (Python triager) Date: 2000-06-07 03:03
 
msg32731 - (view) Author: Fred Drake (fdrake) (Python committer) Date: 2000-06-29 21:13
Committed verbatim.
msg32732 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2000-06-28 21:05
Accepted and assigned back to Trent.

I hate parts of this patch but can't think of anything substantially better without massive changes everywhere.  For example, testing whether SIZEOF_TIME_T > SIZEOF_LONG and then *assuming* LONG_LONG is long enough is the same kind of dubious assumption that broke on Win64.  The new dubious assumptions are likely to hold true for years to come, but it's still unprincipled.
Still, all in all, fixes a real problem now and a principled alternative is A Project.
msg32733 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2000-06-28 21:13
Hmm.  Assigning back to Trent.  Could have sworn I did that the first time!
msg32734 - (view) Author: Trent Mick (tmick) (Python triager) Date: 2000-06-07 03:03
I confirm that, to the best of my knowledge and belief, this
contribution is free of any claims of third parties under
copyright, patent or other rights or interests ("claims").  To
the extent that I have any such claims, I hereby grant to CNRI a
nonexclusive, irrevocable, royalty-free, worldwide license to
reproduce, distribute, perform and/or display publicly, prepare
derivative versions, and otherwise use this contribution as part
of the Python software and its related documentation, or any
derivative versions thereof, at no cost to CNRI or its licensed
users, and to authorize others to do so.

I acknowledge that CNRI may, at its sole discretion, decide
whether or not to incorporate this contribution in the Python
software and its related documentation.  I further grant CNRI
permission to use my name and other identifying information
provided to CNRI by me for use in connection with the Python
software and its related documentation.
msg32735 - (view) Author: Trent Mick (tmick) (Python triager) Date: 2000-06-07 03:04
This patch fixes the posix module for large file support mainly on Win64,
although some general cleanup is done as well.

The changes are:
- abstract stat->STAT, fstat->FSTAT, and struct stat->STRUCT_STAT
  This is because stat() etc. are not the correct functions to use on Win64
  (nor maybe on other platforms?, if not then it is now trivial to select the
  appropriate one). On Win64 the appropriate system functions are _stati64(),
  etc.
- add _pystat_fromstructstat(), it builds the return tuple for the fstat
  system call. This functionality was being duplicated. As well the
  construction of the tuple was modified to ensure no overflow of the time_t
  elements (sizeof(time_t) > sizeof(long) on Win64).
- add overflow protection for the return values of posix_spawnv and
  posix_spawnve
- use the proper 64-bit capable lseek() on Win64
- use intptr_t instead of long where appropriate from Win32/64 blocks
  (sizeof(void*) > sizeof(long) on Win64)
msg32736 - (view) Author: Trent Mick (tmick) (Python triager) Date: 2000-06-28 16:00
test comment to see if 'tim_one', the current patch owner, will get a notification message for this comment
History
Date User Action Args
2022-04-10 16:02:00adminsetgithub: 32436
2000-06-07 03:03:19tmickcreate