Перейти к содержимому

Gnu c что это

  • автор:

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 заклинаний на змеином языке

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *