Compiling 3.13 in MSYS2/UCRT64 causes a type error for _PyTime_AsTime_t
Open
Nobody has claimed this yet.
build
OS-windows
type-bug
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Bug report
Bug description:
Compiling Python 3.13 on MSYS2/UCRT64 causes a type check error for _PyTime_AsTime_t's second parameter.
Python/pytime.c: In function 'pytime_as_timeval_struct':
Python/pytime.c:815:37: error: passing argument 2 of '_PyTime_AsTime_t' from incompatible pointer type [-Wincompatible-pointer-types]
815 | res2 = _PyTime_AsTime_t(tv_sec, &tv->tv_sec);
| ^~~~~~~~~~~
| |
| long int *
Python/pytime.c:245:38: note: expected 'time_t *' {aka 'long long int *'} but argument is of type 'long int *'
245 | _PyTime_AsTime_t(PyTime_t t, time_t *t2)
| ~~~~~~~~^~
How to reproduce:
Environment: MSYS2/UCRT64
Commit: 4aa0c5ec34836a026d06e556784c41e0eeb807b3 (origin/3.13, 3.13)
CXX=g++ ./configure --disable-gil --enable-optimizations --with-lto=full --with-ensurepip=install
make -j16
CPython versions tested on:
- 3.12
- 3.13
Operating systems tested on:
Windows
Linked PRs
- gh-126355
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Python/pytime.c at pytime_as_timeval_struct and _PyTime_AsTime_t, then reproduce the reported build with the MSYS2/UCRT64 configure and make commands. Done means the Python 3.13 build completes without the incompatible-pointer-type error; linked PR gh-126355 should be reviewed first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python
- Domain
- build-system, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100