Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta Para iniciantes
#1,926 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
85/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
cpp, linux

Direção de pesquisa

Comece em app/src/app_common.cc, no branch Linux kCpuArchitecture, e inspecione como o valor é usado para o registro de bibliotecas e o user-agent. Verifique a nomenclatura ARM existente no mesmo arquivo e, em seguida, compile o C++ SDK com toolchains Linux para aarch64 e ARM de 32 bits. Está concluído quando esses alvos não pararem mais devido ao erro de arquitetura desconhecida.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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).

Linguagem predominante
C++
Estrelas
326
Forks
137
Merge médio
1d 22h
PRs com merge (30d)
10

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de firebase/firebase-cpp-sdk

Todas as issues de firebase/firebase-cpp-sdk

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.