Add arm64 Docker build container for native cross-compilation

Uses ubuntu:22.04 arm64 image running under QEMU emulation to produce
aarch64 binaries that match the target device exactly (same glibc, same
distro). Replaces the broken Buildroot cross-compilation approach.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Michael Smith 2026-02-13 14:04:41 +01:00
parent 7597f17f9e
commit a1bafece22
3 changed files with 33 additions and 0 deletions

0
docker-arm64/.build Normal file
View File

8
docker-arm64/Dockerfile Normal file
View File

@ -0,0 +1,8 @@
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential pkg-config \
libsdl2-dev libsdl2-image-dev \
libavformat-dev libavcodec-dev libavutil-dev libswresample-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /workspace

25
docker-arm64/Makefile Normal file
View File

@ -0,0 +1,25 @@
.PHONY: shell build clean
IMAGE_NAME = arm64-dev
PROJECT_DIR := $(shell cd .. && pwd)
CONTAINER_NAME = $(shell docker ps -f "ancestor=$(IMAGE_NAME)" --format "{{.Names}}")
.build: Dockerfile
docker build --platform linux/arm64 -t $(IMAGE_NAME) .
touch .build
ifeq ($(CONTAINER_NAME),)
shell: .build
docker run --platform linux/arm64 -it --rm -v "$(PROJECT_DIR)":/workspace $(IMAGE_NAME) /bin/bash
else
shell:
docker exec -it $(CONTAINER_NAME) /bin/bash
endif
build: .build
docker run --platform linux/arm64 --rm -v "$(PROJECT_DIR)":/workspace $(IMAGE_NAME) make
clean:
docker rmi $(IMAGE_NAME)
rm -f .build