Broken on big-endian architectures
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- cpp
- Bereich
- operating-systems, testing
Rechercherichtung
Beginne mit dem fehlschlagenden File transversal, suche nach GCode-Blöcken und Tests zur binary/ascii-Konvertierung und untersuche anschließend das Lesen von Datendateien in src/LibBGCode/core/core.cpp, einschließlich FileHeader::read. Reproduziere die Fehler auf einer Big-Endian-Architektur und verwende dabei die verlinkten Debian-Build-Logs als Kontext. Erledigt ist die Aufgabe, wenn die aufgeführten Tests auf Big-Endian-Systemen bestehen, ohne das Paket zu deaktivieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The following tests fail in big-endian architectures:
The following tests FAILED:
1 - File transversal (Failed)
2 - Search for GCode blocks (Failed)
3 - Convert from binary to ascii (Failed)
4 - Convert from ascii to binary (Failed)
Downstream bug report in Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062014
Some debugging reveals that this error happens due to mismatched endianness when reading data files.
diff --git a/src/LibBGCode/core/core.cpp b/src/LibBGCode/core/core.cpp @@ -126,8 +127,10 @@ EResult FileHeader::read(FILE& file, const uint32_t* const max_version) { if (!read_from_file(file, &magic, sizeof(magic))) return EResult::ReadError; + printf("data=0x%08x MAGIC=0x%08x\n", magic, MAGICi32); if (magic != MAGICi32) return EResult::InvalidMagicNumber; -> File:/build/libbgcode/tests/data/mini_cube_b.bgcode data=0x47434445 MAGIC=0x45444347It's likely that there are many more similar problems lurking in the source code.
If this issue can't be fixed, the package should probably be disabled on big endian architectures.
Sample build logs:
- Vorherrschende Sprache
- G-code
- Sterne
- 73
- Forks
- 23
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
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 prusa3d/libbgcode
-
Extending bgcodeOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
PyPI releaseEvtl. wieder frei @tomasbedrich hat das vor 1010 Tagen übernommen, und es ist kein Pull Request offen. Offen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 55/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
Alle Issues in prusa3d/libbgcode
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 95/100
containers/crun#2415 ·
Maintainer antworten meist innerhalb von 1 Tag
-
type-bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
support
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
openrazer/openrazer#2963 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
podman-container-tools/podman#30031 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
NVIDIA/open-gpu-kernel-modules#1479 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag