The reusable cross-build stack for the TP-Link Archer AX10's architecture. It packages the toolchain, target sysroot, and ABI shims needed to compile glibc-2.26 ARMv7 binaries that run on this router's 2013-vintage firmware — so CI (and anyone) can reproduce binaries for it.
Part of the archer-ax10 project. Consumed by ax10-dropbear and ax10-luci.
| Triple | arm-buildroot-linux-gnueabi (aka arm-linux-*) |
| CPU / float | Cortex-A9, soft-float, ARM mode, aapcs-linux |
| libc | glibc 2.26 |
| Toolchain | GCC 5.5.0, binutils 2.28.1 (Buildroot 2017.11.1 crosstools; Broadcom BCM675x SDK) |
| Kernel headers | Linux 4.1 |
- The cross toolchain (
crosstools-arm-gcc-5.5-linux-4.1-glibc-2.26-binutils-2.28.1). - A minimal target sysroot (glibc + headers).
- ABI shims — the non-obvious part:
hdrfix/(patchedblobmsg.h/libubus.h/iwinfo.h) and the 2013-vintagelibubox/ubusthe firmware's ownubusdlinks against. These let modern OpenWrt sources build against the router's old ubus ABI.
The toolchain binaries are 32-bit x86, so on GitHub's x86-64 runners they run natively — no qemu (qemu-i386 is only needed on a non-x86 build host). Packages build inside the image:
jobs:
build:
runs-on: ubuntu-latest
container: ghcr.io/lee-soft/newstack:latest
steps:
- uses: actions/checkout@v4
- run: ./build/build.sh # uses the toolchain on PATHThe toolchain ships as the toolchain-2017.11 Release asset (39 MB) and build-image
builds + publishes ghcr.io/lee-soft/newstack:latest from the Dockerfile. It's a clean
Buildroot GPL/LGPL crosstool — no proprietary content, toolchain sysroot is pure glibc.
Consumed today by ax10-dropbear (which just pulls the toolchain
Release asset directly). The LuCI stack — which additionally needs the Broadcom target sysroot
and the 2013 libubox/ubus ABI shims — is the next addition.
MIT for this repo's tooling (see LICENSE). The toolchain (GCC/binutils/glibc) is GPL/LGPL — see THIRD-PARTY.md.