diff --git a/README.md b/README.md new file mode 100644 index 0000000..a63e765 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# 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 +```