<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">trudyniisi</journal-id><journal-title-group><journal-title xml:lang="ru">Труды НИИСИ</journal-title><trans-title-group xml:lang="en"><trans-title>SRISA Proceedings</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">2225-7349</issn><issn pub-type="epub">3033-6422</issn><publisher><publisher-name>НИЦ «КУРЧАТОВСКИЙ ИНСТИТУТ» - НИИСИ</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.25682/NIISI.2025.3.0008</article-id><article-id custom-type="elpub" pub-id-type="custom">trudyniisi-118</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ, КОМПЛЕКСОВ И КОМПЬЮТЕРНЫХ СЕТЕЙ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>MATHEMATICAL AND SOFTWARE SUPPORT FOR COMPUTING SYSTEMS, COMPLEXES AND COMPUTER NETWORKS</subject></subj-group></article-categories><title-group><article-title>Статическая инфраструктура для сборки кросс-компилятора</article-title><trans-title-group xml:lang="en"><trans-title>Static Infrastructure for Building a Cross Compiler</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Асонов</surname><given-names>А. А.</given-names></name><name name-style="western" xml:lang="en"><surname>Asonov</surname><given-names>A. A.</given-names></name></name-alternatives><email xlink:type="simple">asonow@niisi.ras.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Самборский</surname><given-names>С. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Samborskiy</surname><given-names>S. V.</given-names></name></name-alternatives><email xlink:type="simple">sambor@niisi.msk.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru">НИЦ «Курчатовский институт» - НИИСИ<country>Россия</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2025</year></pub-date><pub-date pub-type="epub"><day>28</day><month>12</month><year>2025</year></pub-date><volume>15</volume><issue>3</issue><issue-title>ТРУДЫ НИИСИ. МАТЕМАТИЧЕСКОЕ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ: ТЕОРЕТИЧЕСКИЕ И ПРИКЛАДНЫЕ АСПЕКТЫ</issue-title><fpage>60</fpage><lpage>64</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Асонов А.А., Самборский С.В., 2025</copyright-statement><copyright-year>2025</copyright-year><copyright-holder xml:lang="ru">Асонов А.А., Самборский С.В.</copyright-holder><copyright-holder xml:lang="en">Asonov A.A., Samborskiy S.V.</copyright-holder><license license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.t-niisi.ru/jour/article/view/118">https://www.t-niisi.ru/jour/article/view/118</self-uri><abstract><p>В работе рассматривается проблема эксплуатации кросс-компилятора на базе GCC и бинарных утилит для отечественных микропроцессоров в условиях разнообразия аппаратных платформ и дистрибутивов ОС Linux. Показано, что использование разделяемых библиотек (прежде всего glibc) и зависящих от конкретного дистрибутива сборок приводит к множеству несовместимостей и усложняет сопровождение. Предложена статическая «самодостаточная» инфраструктура для сборки кросс-компилятора, включающая компилятор, бинарные утилиты и набор библиотек, собранные с использованием mus - альтернативной реализации стандартной библиотеки языка C. Описана многошаговая процедура раскрутки (bootstrapping), позволяющая получить конечный комплект инструментов, не использующий разделяемые библиотеки и минимально зависящий от параметров конкретной системы (кроме разрядности процессора и интерфейса ядра Linux). Обсуждаются ограничения, связанные с отказом от разделяемых библиотек (поддержка LTO, санитайзеров), и возможные направления расширения инфраструктуры за счет включения дополнительных утилит для сборки, тестирования и отладки.</p></abstract><trans-abstract xml:lang="en"><p>The paper addresses the problem of deploying a GCC- and binutils-based cross-compiler toolchain for domestic microprocessors in the context of a wide variety of hardware platforms and Linux distributions. It is shown that the use of shared libraries (primarily glibc) and distribution-specific builds leads to numerous incompatibilities and complicates maintenance. A static, self-contained infrastructure for building a cross-compiler is proposed, comprising the compiler, binary utilities, and a set of libraries built using musl – an alternative implementation of the C standard library. A multi-stage bootstrapping procedure is described that makes it possible to obtain a final toolchain which does not utilize shared libraries and only minimally dependent on the parameters of a specific system (apart from CPU word size and the Linux kernel interface). The limitations associated with abandoning shared libraries (LTO support, sanitizers) are discussed, as well as possible directions for extending the infrastructure by adding auxiliary tools for building, testing, and debugging.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>кросс-компилятор</kwd><kwd>статическая линковка</kwd><kwd>инфраструктура сборки</kwd><kwd>GCC</kwd><kwd>бинарные утилиты</kwd><kwd>musl libc</kwd><kwd>glibc</kwd><kwd>отечественные микропроцессоры</kwd><kwd>Linux-дистрибутивы</kwd></kwd-group><kwd-group xml:lang="en"><kwd>cross-compiler</kwd><kwd>static linking</kwd><kwd>build infrastructure</kwd><kwd>GCC</kwd><kwd>binutils</kwd><kwd>musl libc</kwd><kwd>glibc</kwd><kwd>domestic microprocessors</kwd><kwd>Linux distributions</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">GCC, the GNU Compiler Collection. https://gcc.gnu.org/ (дата обращения 08.11.2025).</mixed-citation><mixed-citation xml:lang="en">GCC, the GNU Compiler Collection. https://gcc.gnu.org/ (дата обращения 08.11.2025).</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">GNU Binutils. https://www.gnu.org/software/binutils/ (дата обращения 08.11.2025).</mixed-citation><mixed-citation xml:lang="en">GNU Binutils. https://www.gnu.org/software/binutils/ (дата обращения 08.11.2025).</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">gdb and binutils. https://sourceware.org/git/binutils-gdb.git (дата обращения 08.11.2025).</mixed-citation><mixed-citation xml:lang="en">gdb and binutils. https://sourceware.org/git/binutils-gdb.git (дата обращения 08.11.2025).</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">В. А. Галатенко, Г. Л. Левченкова, С. В. Самборский. Особенности сборки кросс-компилятора GCC и бинарных утилит. «Труды НИИСИ РАН», Т. 12 (2022), № 4, 43-49.</mixed-citation><mixed-citation xml:lang="en">В. А. Галатенко, Г. Л. Левченкова, С. В. Самборский. Особенности сборки кросс-компилятора GCC и бинарных утилит. «Труды НИИСИ РАН», Т. 12 (2022), № 4, 43-49.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">The GNU C Library. https://www.gnu.org/software/libc/ (дата обращения 08.11.2025).</mixed-citation><mixed-citation xml:lang="en">The GNU C Library. https://www.gnu.org/software/libc/ (дата обращения 08.11.2025).</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">The GNU C Library (glibc). https://sourceware.org/glibc/ (дата обращения 08.11.2025).</mixed-citation><mixed-citation xml:lang="en">The GNU C Library (glibc). https://sourceware.org/glibc/ (дата обращения 08.11.2025).</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">musl libc. https://musl.libc.org/ (дата обращения 08.11.2025).</mixed-citation><mixed-citation xml:lang="en">musl libc. https://musl.libc.org/ (дата обращения 08.11.2025).</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
