Android arm64 cross-build fails with current main and NDK r29
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- android, c, cpp, javascript
- Domínio
- build-system, mobile-dev
Direção de pesquisa
Comece com android-configure e o caminho de build do zlib para Android; depois, inspecione a seleção do gerador de ICU/V8 no lado do host e a implementação de sources/android/cpufeatures/cpu-features.c. Revise os PRs #65772, #65773 e #65774 antes de reproduzir com NDK r29, API 30 e arm64. Está concluído quando o build for concluído e as verificações de runtime do Android listadas passarem.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Version
Current upstream main at 1e9fd9544ef38e6e36ca1d5ab7af3bab5b20496d
Platform
Android 11 target, arm64, API 30
Android NDK r29
Linux x86_64 build host
What steps will reproduce the bug?
On an unmodified checkout of main:
./android-configure /path/to/android-ndk-r29 30 arm64
make
What do you see instead?
The Android configure script assigns the Android target compiler to CC and
CXX. That compiler is also used for host-side tools such as ICU and V8
generators. The Android zlib target includes the NDK CPU-feature header but
does not include the corresponding sources/android/cpufeatures/cpu-features.c
implementation, which causes the Android CPU feature symbols to be missing
from the link.
Android cross builds can also reach V8 host-tool configurations where the
required POSIX trap-handler sources are not selected. Android trap-handler
activation must remain disabled; the required source selection is a separate
build concern.
Expected behavior
android-configure should select separate host and target compilers, and an
Android arm64 build should complete without requiring local absolute paths or
hand-edited generated files when using NDK r29.
Current status
The follow-up changes are kept separately reviewable:
- #65772 separates host and
target compilers. - #65773 compiles the Android
NDK CPU feature implementation through a checked-in wrapper. - #65774 selects the required V8
POSIX and host simulator sources while keeping Android trap-handler support
disabled.
Validation with NDK r29, Android API 30, and arm64 completed successfully. The
resulting Node binary also passed basic zlib, crypto, Intl, WebAssembly, and
SharedArrayBuffer runtime checks on Android 11.
The issue remains open pending upstream review and CI completion for the three
follow-up pull requests.
Validation notes
Runtime loading used the matching NDK libc++_shared.so alongside the binary
and did not require a system-image change.
The earlier NDK r27d std::atomic_ref compatibility observation is retained
only as historical context. PR #65775 was closed because an ordinary simdutf
API is not an equivalent atomic fallback for SharedArrayBuffer access; it is
not part of the current fix.
The changes are intended to be generic and do not depend on a particular
Android system-image integration, device serial number, or checkout path.
- Linguagem predominante
- JavaScript
- Estrelas
- 122k
- Forks
- 38.4k
- Merge médio
- 4d 4h
- PRs com merge (30d)
- 271
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de nodejs/node
-
doc
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
Mantenedores costumam responder em até 1 dia
-
doc
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Mantenedores costumam responder em até 1 dia
-
build
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
nodejs/node#66076 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
nodejs/node#65994 · 2 comentários · 2 reações ·
Mantenedores costumam responder em até 1 dia
-
feature request
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
nodejs/node#63841 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de nodejs/node
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
type/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
Edit: RTE News LogoAbertacheck:failed logos:edit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
iptv-org/database#36354 · 1 comentário ·
Mantenedores costumam responder em até 4 dias
-
status:untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
midnightntwrk/midnight-wallet#791 ·
Mantenedores costumam responder em até 1 dia