CYGWIN: Python-3.16.0a1 doesn't select correct strerror_r()
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 60/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- c
- Bereich
- operating-systems
Rechercherichtung
Der Fehler liegt in _Py_strerror in Python/fileutils.c, wo der Präprozessorblock nahe Zeile 3319 entweder Py_STRERROR_R_GNU oder die XSI-Variante auswählt und die beiden strerror_r-Aufrufe nahe den Zeilen 3353 und 3373 auf Cygwin nicht kompilieren. Lies diesen Feature-Test-Block und die vom Melder vorgeschlagene __CYGWIN__-Bedingung und prüfe dann, ob configure.ac die Signatur von strerror_r bereits erkennt. Fertig ist es, wenn ein Cygwin-Build ohne int-conversion-Fehler kompiliert und dort der GNU-Zweig gewählt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug report
Python-3.16.0a1 has been released, so I tried to build it on Cygwin.
Unfortunately, this error happens:
Python-3.16.0a1/Python/fileutils.c: In function ‘_Py_strerror’:
Python-3.16.0a1/Python/fileutils.c:3353:15: error: initialization of ‘int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]
3353 | int len = strerror_r(code, small_buffer, buflen);
| ^~~~~~~~~~
Python-3.16.0a1/Python/fileutils.c:3373:17: error: assignment to ‘int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]
3373 | len = strerror_r(code, buffer, buflen);
| ^
make: *** [Makefile:3361: Python/fileutils.o] Error 1
I'm thinking that this error comes from a recent change because I had not it in the past builds.
Evidently, Cygwin is also using the GNU version of strerror_r() but the current code doesn't take care of it.
At the moment, I fixed the error with this change:
--- origsrc/Python-3.16.0a1/Python/fileutils.c 2026-10-13 17:05:54.000000000 +0200
+++ src/Python-3.16.0a1/Python/fileutils.c 2026-11-02 13:13:18.366198700 +0100
@@ -3319,7 +3319,7 @@ _Py_strerror(int code)
// Check which strerror_r() API is used
# if defined(__GLIBC__) && !((_POSIX_C_SOURCE >= 200112L) && !defined(_GNU_SOURCE))
# define Py_STRERROR_R_GNU
-# elif defined(__ANDROID__) && defined(_GNU_SOURCE)
+# elif (defined(__ANDROID__) || defined(__CYGWIN__)) && defined(_GNU_SOURCE)
# define Py_STRERROR_R_GNU
# endif
#endif
However, is there a special reason because this test is not done at configure time?
Any comments?
See also issue #149879 "Enhance Cygwin support".
CPython versions tested on:
3.16
Operating systems tested on:
Windows
- Vorherrschende Sprache
- Python
- Sterne
- 77.8k
- Forks
- 37.7k
- Ø Merge
- 17 Std. 2 Min.
- Gemergte PRs (30 T.)
- 699
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/cpython
-
What's New in 3.12 credits the unstable C API tier to PEP 697 instead of PEP 689Evtl. vergeben @TheLouisMahdi hat das vor 2 Tagen übernommen. Offendocs
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
python/cpython#161078 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
OS-windows type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
docs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
python/cpython#161007 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Null dereferencing of a pointer in initconfig.cEvtl. vergeben @lazerg hat das vor 5 Tagen übernommen. Offeninterpreter-core topic-C-API type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
python/cpython#160962 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
tests topic-profiling type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
python/cpython#160881 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
bug ready-for-dev
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 92/100
OpenHands/extensions#897 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
tensorflow/datasets#11253 ·
Maintainer antworten meist innerhalb von 1 Tag
-
fix(core): a config section with all keys commented out crashes startupEvtl. vergeben @Aryanbhargava18 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
kubeflow/mcp-server#512 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Stop trusting the compromised eMudhra CA certificatesEvtl. vergeben @anth-volk hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
PolicyEngine/uk-triple-lock#54 ·
Maintainer antworten meist innerhalb von 1 Tag
-
DBFS append mode silently overwrites existing filesEvtl. vergeben @IlyaKhalafi hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
fsspec/filesystem_spec#2429 ·
Maintainer antworten meist innerhalb von 1 Tag