Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[FR] Support desktop Linux on aarch64/arm (#error Unknown Linux architecture in app_common.cc)

Offen Anfängerfreundlich
#1,926 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

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

new type: question
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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus firebase/firebase-cpp-sdk

Alle Issues in firebase/firebase-cpp-sdk

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.