# build-toolchain Сборка кросс-компилятора `arm-uclinuxfdpiceabi` (ARMv7-M, Thumb, FDPIC) на базе binutils + GCC + uClibc-ng, а также набора статических библиотек под него. ## Состав | Компонент | Версия | |---------------|----------| | binutils | 2.42 | | GCC | 13.4.0 | | Linux headers | 4.9.224 | | uClibc-ng | 1.0.34 | ## Требования (Ubuntu/Debian) Для `build-toolchain.sh` (сборка самого компилятора): ``` sudo apt install build-essential bison flex texinfo gawk bc m4 wget python3 perl ``` Для `build-libraries.sh` (сборка zlib/OpenSSL/LibVNCServer/freetype под целевую платформу) дополнительно нужен `cmake`: ``` sudo apt install cmake pkg-config ``` Библиотеки gmp/mpfr/mpc/isl отдельно ставить не нужно — `contrib/download_prerequisites` сам скачивает их исходники внутрь дерева GCC (нужен доступ в интернет). ## Исходники В корень репозитория нужно положить архивы (не входят в git, см. `.gitignore`): ``` binutils-2.42.tar.xz gcc-13.4.0.tar.xz linux-4.9.224.tar.xz uClibc-ng-1.0.34.tar.xz ``` Для `build-libraries.sh` — архивы библиотек в подпапку `lib/`: ``` lib/zlib-1.2.13.tar.xz (или .tar.gz) lib/openssl-3.0.13.tar.xz (или .tar.gz) lib/LibVNCServer-0.9.14.tar.xz (или .tar.gz) lib/freetype-2.13.2.tar.xz (или .tar.gz) ``` ## Сборка ``` ./build-toolchain.sh # компилятор + libc -> install/, архив toolset-jlv-*.tar.xz ./build-libraries.sh # статические библиотеки -> install/sysroot ``` Компилятор ставится в `install/bin` (`arm-uclinuxfdpiceabi-gcc` и т.д.). Для сборки чего-либо этим компилятором подключить окружение: ``` . ./env.sh install/bin ```