[FR] Support desktop Linux on aarch64/arm (#error Unknown Linux architecture in app_common.cc)
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
- 85/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- cpp, linux
- Bereich
- build-system, operating-systems
Rechercherichtung
Beginnen Sie in app/src/app_common.cc beim Linux-Zweig kCpuArchitecture und prüfen Sie, wie der Wert für die Bibliotheksregistrierung und den User-Agent verwendet wird. Überprüfen Sie die vorhandene ARM-Namensgebung in derselben Datei und erstellen Sie anschließend das C++ SDK mit aarch64- und 32-Bit-ARM-Linux-Toolchains. Die Aufgabe ist erledigt, wenn diese Ziele nicht mehr beim Fehler wegen unbekannter Architektur abbrechen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Feature proposal
- Firebase Component: Core (App)
Support desktop Linux on aarch64 and 32-bit ARM.
Use case: we run the C++ SDK (Auth, Realtime Database, Remote Config) on an embedded aarch64 Linux board, cross-compiled from x86_64 with a Buildroot GCC toolchain. The SDK builds and runs there with one change. Without it, the build stops in app/src/app_common.cc (v12.8.0, unchanged on main), because the Linux branch that defines kCpuArchitecture only knows x86 and x86_64:
#if __amd64__
const char* kCpuArchitecture = "x86_64";
#elif __i386__
const char* kCpuArchitecture = "x86";
#else
#error Unknown Linux architecture.
#endif // Architecture
The value is only used for the fire-cpp-arch library registration (the user-agent), and the other platforms in the same file already name ARM ("arm64", "arm32"). So ARM Linux is blocked by this one #error, not by anything that depends on the architecture.
Proposed change, matching those names:
#if __amd64__
const char* kCpuArchitecture = "x86_64";
#elif __i386__
const char* kCpuArchitecture = "x86";
#elif __aarch64__
const char* kCpuArchitecture = "arm64";
#elif __arm__
const char* kCpuArchitecture = "arm32";
#else
#error Unknown Linux architecture.
#endif // Architecture
With this change, Auth, Realtime Database and Remote Config build and run on aarch64 Linux for us. Happy to open a PR.
Related: #1508 (Linux cross-compilation / Yocto support).
- Vorherrschende Sprache
- C++
- Sterne
- 326
- Forks
- 138
- Ø Merge
- 1 T. 22 Std.
- Gemergte PRs (30 T.)
- 6
Entwicklungsumgebung
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 firebase/firebase-cpp-sdk
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
firebase/firebase-cpp-sdk#1905 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
api: firestore
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
firebase/firebase-cpp-sdk#1920 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 70/100
firebase/firebase-cpp-sdk#1904 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
new type: question
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
firebase/firebase-cpp-sdk#1892 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
nightly-testing
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
firebase/firebase-cpp-sdk#1859 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in firebase/firebase-cpp-sdk
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
microsoft/onnxruntime-genai#2633 ·
Maintainer antworten meist innerhalb von 1 Tag
-
mapper bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
firebase/firebase-ios-sdk#16718 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
tesseract-ocr/tesseract#4627 ·