posixmodule "undeclared function" error when compiling with sanitizer options on Termux (Android)
Offen
Dieses Issue hat noch niemand übernommen.
build
extension-modules
OS-android
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Python fails to compile when compiling with the sanitizer option.
Python/fileutils.c:458:1: warning: unused function 'decode_current_locale' [-Wunused-function] 458 | decode_current_locale(const char* arg... | ^~~~~~~~~~~~~~~~~~~~~
Python/fileutils.c:677:1: warning: unused function 'encode_current_locale' [-Wunused-function] 677 | encode_current_locale(const wchar_t *t... | ^~~~~~~~~~~~~~~~~~~~~ 2 warnings generated.
./Modules/posixmodule.c:10400:15: error: call to undeclared function 'wait3'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 10400 | pid = wait3(&status, options, &ru); | ^ 1 error generated. make: ***
[Makefile:3808: Modules/posixmodule.o] Error 1 make: *** Waiting for unfinished jobs...
clang option use.
aarch64-linux-android-clang -fsanitize=address -fsanitize=undefined
aarch64-linux-android-clang++ -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr
aarch64-linux-android-clang --version
clang version 21.1.3
Target: aarch64-unknown-linux-android24
Thread model: posix
InstalledDir: /data/data/com.termux/files/usr/bin
.git revision is at bedaea05987738c4c6b958d19cec9621bec09f07
Compiling with no sanitizer option works.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie in Modules/posixmodule.c beim wait3-Aufruf, der in der Nähe von Zeile 10400 gemeldet wird, und reproduzieren Sie dann den Build mit den bereitgestellten Termux clang-Sanitizer-Befehlen sowie der Konfiguration ohne Sanitizer zum Vergleich. Fertig bedeutet, dass CPython mit den Sanitizer-Optionen ohne den Fehler „undeclared-function“ kompiliert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, c, python
- Bereich
- build-system, operating-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 48/100