GNU C
GNU C — это реализация языка программирования C, предоставляемая проектом GNU. Основной компонент этой реализации — компилятор GCC (GNU Compiler Collection), который изначально разрабатывался как компилятор для языка C, но позже был расширен для поддержки многих других языков программирования.
GNU C и GCC являются свободными и открытыми, что означает, что любой разработчик может использовать, модифицировать и распространять их в соответствии с лицензией GNU General Public License (GPL).
Кроме того, GNU C библиотека (glibc) — это библиотека C для системы GNU, которая предоставляет стандартные функции и интерфейсы, такие как системные вызовы, необходимые для выполнения программ. Она служит ключевым компонентом большинства систем на базе ядра Linux.
Ваша приватность умирает красиво, но мы можем спасти её.
22 ноября, 2023
Активно используемая уязвимость Linux грозит захватом систем федеральных агентств США
CISA призвала частные и госорганизации срочно устранить ошибку Looney Tunables, чтобы предотвратить потерю контроля над сетями.
Что такое gcc ?
GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.
Изначально названный GNU C Compiler, он поддерживал только язык Си. Позднее, GCC был расширен для компиляции исходных кодов на таких языках программирования как C++, Objective-C, Java, Фортран и Ada.
Источник: http://ru.wikipedia.org/wiki/GNU_Compiler_Collection
Остальные ответы
компилятор вроде бы
Я так думаю, что это свободно распространяемый компилятор С/С++, который распространяется по одной из лицензий программного обеспечения с открытым кодом. Обычно этот компилятор используется на UNIX подобных системах.
Google Closure Compiler — это инструмент, позволяющий загружать и запускать JavaScript быстрее, за счет удобства чтения. Он не компилируется с JavaScript на машинный код, а скорее компилируется из JavaScript в более эффективный JavaScript. Он анализирует JavaScript, анализирует его, удаляет мертвый код и переписывает и уменьшает то, что осталось.
gcc⚓︎
Пакет содержит набор компиляторов GNU для таких языков как Си и Си++.
Версия: 11.2.0
Размер: 77.14Mb
Приоритет: Необходимый
MD5: 31c86f2ced76acac66992eeedce2fce2
SBU (Сборка временной системы): 14.8
SBU: 25
Подготовка⚓︎
Дополнительные необходимые файлы⚓︎
mpc-1.2.1.tar.gz gmp-6.2.1.tar.xz mpfr-4.1.0.tar.xz isl-0.24.tar.xz
Распакуйте дополнительные пакеты:
Распаковка указанных ниже пакетов должна производиться из каталога gcc-11.2.0 . Проверьте текущее местоположение, прежде чем выполнить команды ниже.
tar -xf ../mpfr-4.1.0.tar.xz mv -v mpfr-4.1.0.tar.xz mpfr tar -xf ../gmp-6.2.1.tar.xz mv -v gmp-6.2.1.tar.xz gmp tar -xf ../mpc-1.2.1.tar.gz mv -v mpc-1.2.1.tar.gz mpc tar -xf ../isl-0.24.tar.xz mv -v isl-0.24.tar.xz isl
Смените пути установки библиотек:
sed -e '/m64=/s/lib64/lib/' \ -e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \ -i.orig gcc/config/i386/t-linux64
Пакет GCC требует использовать отдельную директорию для сборки. Создайте её:
mkdir -v build cd build
Настройка⚓︎
../configure \ --target=$LIN_TGT \ --prefix=$LIN/tools \ --with-glibc-version=2.11 \ --with-sysroot=$LIN \ --with-newlib \ --without-headers \ --enable-initfini-array \ --disable-nls \ --disable-shared \ --disable-decimal-float \ --disable-threads \ --disable-libatomic \ --disable-libgomp \ --disable-libquadmath \ --disable-libssp \ --disable-libvtv \ --disable-libstdcxx \ --enable-languages=c,c++ \ --disable-multilib
Для multilib⚓︎
Замените параметр —disable-multilib на —enable-multilib —with-multilib-list=m64,m32
Значения параметров⚓︎
—with-glibc-version = 2.11 Эта опция гарантирует, что пакет будет совместим с версией glibc на хосте. Для него установлено минимальное требование glibc, указанное в Требованиях к хост-системе.
—with-newlib Поскольку рабочая библиотека C еще недоступна, это гарантирует, что константа ignit_libc определена при сборке libgcc. Это предотвращает компиляцию любого кода, требующего поддержки libc.
—without-headers При создании полного кросс-компилятора GCC требует стандартных заголовков, совместимых с целевой системой. Для наших целей эти заголовки не понадобятся. Этот переключатель предотвращает их поиск GCC.
—enable-initfini-array Этот переключатель заставляет использовать некоторые внутренние структуры данных, которые необходимы, но не могут быть обнаружены при построении кросс-компилятора.
—disable-shared Этот переключатель заставляет GCC связывать свои внутренние библиотеки статически. Нам это нужно, потому что общие библиотеки требуют glibc, которая ещё не установлена в целевой системе.
—disable-decimal-float, —disable-threads, —disable-libatomic, —disable-libgomp, —disable-libquadmath, —disable-libssp, —disable-libvtv, —disable-libstdcxx Эти переключатели отключают поддержку десятичных расширений с плавающей запятой, потоковой передачи, libatomic, libgomp, libquadmath, libssp, libvtv и стандартной библиотеки C++ соответственно. Эти функции не будут скомпилированы при сборке кросс-компилятора и не являются необходимыми для кросс-компиляции временной libc.
—enable-languages=c,c++ Эта опция гарантирует, что будут построены только компиляторы C и C++. Это единственные языки, которые нужны сейчас.
Сборка⚓︎
make
Установка⚓︎
make install
Создадим полную версию limits.h — заголовочного файла, в котором записаны лимиты:
cd .. cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ `dirname $($LIN_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h
Вышла GNU C Library 2.35 — большое обновление для низкоуровневой Linux-библиотеки
Разработчики добавили поддержку Unicode 14, RSEQ-интеграцию и многое другое.

Дмитрий Зверев
Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
GNU C Library (Glibc) — это C-библиотека для GNU- и GNU/Linux-систем, а также для всех остальных, использующих ядро Linux. Glibc создавалась как портативная и высокопроизводительная C-библиотека. Она следует стандартам ISO C11 и POSIX.1-2017. Кроме этого, Glibc имеет полностью интернационализированный интерфейс.
Релиз 2.35 вносит в библиотеку огромное количество разнообразных изменений. Некоторые из них представлены ниже:
- добавили поддержку Unicode 14.0;
- улучшили обработку больших страниц и новый настраиваемый hugetlb для функции malloc;
- добавили поддержку C.UTF-8 locale;
- появился новый алгоритм сортировки — DSO — для динамического линкера, который использует топологическую сортировку и решает проблемы производительности для существующего алгоритма;
- symlink для динамического линкера теперь установлен в /usr/bin/ld.so;
- все программы для Glibc установлены как PIE (position independent executables), которые поддерживаются toolchain/architecture;
- добавили поддержку OpenRISC-архитектуры для Linux;
- epoll_pwait2-функции доступны на Linux;
- убрали поддержку Intel MPX;
- улучшили безопасность.
Посмотреть полный список изменений можно в официальном пресс-релизе GNU C Library.
Читайте также:
- Все операционные системы написаны на С. Не пора ли переписать их на Rust?
- Барух Садогурский: DevRel — это не человек
- Экспекто Питонум: 15 заклинаний на змеином языке