[FR] Support desktop Linux on aarch64/arm (#error Unknown Linux architecture in app_common.cc)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 85/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- cpp, linux
Línea de trabajo
Comienza en app/src/app_common.cc, en la rama de Linux kCpuArchitecture, e inspecciona cómo se usa el valor para el registro de bibliotecas y el user-agent. Verifica los nombres de ARM existentes en el mismo archivo y, después, compila el C++ SDK con toolchains de Linux para aarch64 y ARM de 32 bits. La tarea está terminada cuando esos destinos ya no se detienen por el error de arquitectura desconocida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- C++
- Estrellas
- 326
- Forks
- 138
- Merge medio
- 1 d 22 h
- PR fusionados (30 d)
- 6
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de firebase/firebase-cpp-sdk
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
firebase/firebase-cpp-sdk#1905 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
api: firestore
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
firebase/firebase-cpp-sdk#1920 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
firebase/firebase-cpp-sdk#1904 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
new type: question
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
firebase/firebase-cpp-sdk#1892 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
nightly-testing
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
firebase/firebase-cpp-sdk#1859 ·
Los mantenedores suelen responder en 1 día
Todos los issues de firebase/firebase-cpp-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
hyprwm/aquamarine#426 ·
Los mantenedores suelen responder en 1 día
-
Winget hash mismatch for 5.0.3.0Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
amnezia-vpn/amnezia-client#3222 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
sdatkinson/NeuralAmpModelerCore#342 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
valkey-io/valkey-search#1465 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
Los mantenedores suelen responder en 1 día