diff options
author | Eitan Adler <eadler@FreeBSD.org> | 2015-04-04 23:36:32 +0000 |
---|---|---|
committer | Eitan Adler <eadler@FreeBSD.org> | 2015-04-04 23:36:32 +0000 |
commit | 5ec7a2ea1e1f9aedd4151949ac4a0f412770ded0 (patch) | |
tree | 61db8fddd1e0b3e094752af05909a2d1259498e4 /ru_RU.KOI8-R | |
parent | 30f1f1fe821b80731ad6b6e80708c180262624b2 (diff) | |
download | doc-5ec7a2ea1e1f9aedd4151949ac4a0f412770ded0.tar.gz doc-5ec7a2ea1e1f9aedd4151949ac4a0f412770ded0.zip |
articles/custom-gcc: remove it
- using a custom gcc should be done within poudriere
- there is a framework for choosing a ports compiler anyways
- this article is incomplete w.r.t. modern gcc verisons
- encouraging people to add global options like `mssse3` is dangerous
- the original reason to use a custom gcc is gone (our old gcc was
outdated)
Notes
Notes:
svn path=/head/; revision=46470
Diffstat (limited to 'ru_RU.KOI8-R')
-rw-r--r-- | ru_RU.KOI8-R/articles/Makefile | 1 | ||||
-rw-r--r-- | ru_RU.KOI8-R/articles/custom-gcc/Makefile | 21 | ||||
-rw-r--r-- | ru_RU.KOI8-R/articles/custom-gcc/article.xml | 229 |
3 files changed, 0 insertions, 251 deletions
diff --git a/ru_RU.KOI8-R/articles/Makefile b/ru_RU.KOI8-R/articles/Makefile index e5e3e9ce39..d1e3a5940e 100644 --- a/ru_RU.KOI8-R/articles/Makefile +++ b/ru_RU.KOI8-R/articles/Makefile @@ -13,7 +13,6 @@ SUBDIR+= console-server SUBDIR+= contributing #SUBDIR+= contributors SUBDIR+= cups -SUBDIR+= custom-gcc SUBDIR+= cvs-freebsd SUBDIR+= explaining-bsd #SUBDIR+= filtering-bridges diff --git a/ru_RU.KOI8-R/articles/custom-gcc/Makefile b/ru_RU.KOI8-R/articles/custom-gcc/Makefile deleted file mode 100644 index 7d13ba38d7..0000000000 --- a/ru_RU.KOI8-R/articles/custom-gcc/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -# $FreeBSD$ -# -# Original revision: r39631 -# - - -DOC?= article - -FORMATS?= html -WITH_ARTICLE_TOC?= YES - -INSTALL_COMPRESSED?= gz -INSTALL_ONLY_COMPRESSED?= - -SRCS= article.xml - -URL_RELPREFIX?= ../../../.. -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ru_RU.KOI8-R/articles/custom-gcc/article.xml b/ru_RU.KOI8-R/articles/custom-gcc/article.xml deleted file mode 100644 index 04fbd962b1..0000000000 --- a/ru_RU.KOI8-R/articles/custom-gcc/article.xml +++ /dev/null @@ -1,229 +0,0 @@ -<?xml version="1.0" encoding="koi8-r"?> -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" - "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd"> -<!-- - The FreeBSD Russian Documentation Project - $FreeBSD$ - Original revision: r43184 ---> -<!-- Перевод: Коренко Тарас --> -<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru"> - <info><title>Использование более новых версий <application>GCC</application> - и <application>binutils</application> c коллекцией портов - &os;</title> - - - <author><personname><firstname>Martin</firstname><surname>Matuska</surname></personname><affiliation> - <address><email>mm@FreeBSD.org</email></address> - </affiliation></author> - - <legalnotice xml:id="trademarks" role="trademarks"> - &tm-attrib.freebsd; - &tm-attrib.general; - </legalnotice> - - <copyright> - <year>2009</year> - <holder>The &os; Documentation Project</holder> - </copyright> - - <pubdate>$FreeBSD$</pubdate> - - <releaseinfo>$FreeBSD$</releaseinfo> - - <abstract> - <para>В этой статье описано, как использовать более новые версии - компиляторов <application>GCC</application> и набора утилит - <application>binutils</application> из коллекции портов &os;. - Здесь также обсуждаются специализированные конфигурации - <application>GCC</application>.</para> - </abstract> - </info> - - <sect1 xml:id="intro"> - <title>Предисловие</title> - - <para>Компилятор, поставляемый с &os; 8.0, — это - <application>GCC</application> версии 4.2.1. В базовую систему - &os; включены <application>binutils</application> версии - 2.15. Это довольно-таки старые версии, и в них, между прочим, - отсутствует поддержка новых инструкций <acronym>CPU</acronym>, таких - как <acronym>SSSE3</acronym>, <acronym>SSE4.1</acronym>, - <acronym>SSE4.2</acronym> и т.п. Ввиду лицензионных ограничений, - новые версии этих приложений не будут включены в базовую систему. - К счастью, есть возможность использовать более новую версию компилятора - <application>GCC</application> (например, версию 4.4) - установив его из коллекции портов &os;.</para> - </sect1> - - <sect1 xml:id="prerequisites"> - <title>Подготовка</title> - - <sect2 xml:id="installing-binutils"> - <title>Установка binutils из портов</title> - - <para>Чтобы задействовать все новые функциональные возможности - последней версии <application>GCC</application>, желательна установка - наиболее новой версии <application>binutils</application>. Это - не является обязательным, но без обновления - <application>binutils</application> вы не получите поддержку - новых инструкций <acronym>CPU</acronym>.</para> - - <para>Для того, чтоб установить наиболее новую версию - <application>binutils</application> используя коллекцию портов - &os;, выполните следующую команду:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/devel/binutils && make install</userinput></screen> - </sect2> - - <sect2 xml:id="installing-gcc"> - <title>Установка GCC из портов</title> - - <para> - В коллекции портов &os; можно найти несколько новых версий - <application>GCC</application>. В нашем примере мы устанавливаем - стабильную версию 4.4. Однако, возможно установить предыдущую - или более новую (развивающуюся) версию (например: - <package>lang/gcc43</package> или - <package>lang/gcc45</package>).</para> - - <para>Для установки одного из вышеупомянутых портов - <application>GCC</application>, наберите следующую команду:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/lang/<replaceable>gcc44</replaceable> && make install</userinput></screen> - </sect2> - </sect1> - - <sect1 xml:id="configuring-ports-gcc"> - <title>Настройка портов на использование требуемой - версии <application>GCC</application></title> - - <para>Для использования требуемой версии <application>GCC</application>, - установленной из коллекции портов &os;, требуется дополнительная - конфигурация системы.</para> - - <sect2 xml:id="adjusting-make.conf"> - <title>Изменения в <filename>make.conf</filename></title> - - <para>Добавьте следующие строки в <filename>/etc/make.conf</filename> - (или исправьте существующие):</para> - - <programlisting>.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc44) -CC=gcc44 -CXX=g++44 -CPP=cpp44 -.endif</programlisting> - - <para>В качестве альтернативы, можно установить вручную переменные - окружения <envar>${CC}</envar> и <envar>${CPP}</envar>.</para> - - <note> - <para>Примеры, приведённые выше, сделаны для - <application>GCC</application> версии 4.4. Для того, чтобы - использовать <command>gcc43</command>, замените - <literal>"gcc44"</literal> на <literal>"gcc43"</literal> и - <literal>"4.4"</literal> на <literal>"4.3"</literal> - и т.п.</para> - </note> - </sect2> - - <sect2 xml:id="adjusting-libmap.conf"> - <title>Исправления в <filename>libmap.conf</filename></title> - - <para>Многие установленные из портов приложения и библиотеки - скомпонованы с libgcc_s или libstdc++. В базовую систему уже - включены эти библиотеки, но от более старой версии - <application>GCC</application> (версии 4.2.1). Чтобы предоставить - rltd (и ldd) правильные версии, добавьте следующие записи к - <filename>/etc/libmap.conf</filename> (или измените - существующие):</para> - - <programlisting>libgcc_s.so.1 gcc44/libgcc_s.so.1 -libgomp.so.1 gcc44/libgomp.so.1 -libobjc.so.3 gcc44/libobjc.so.2 -libssp.so.0 gcc44/libssp.so.0 -libstdc++.so.6 gcc44/libstdc++.so.6</programlisting> - - <note> - <para>Пример выше приведен для <application>GCC</application> - версии 4.4. Если вы используете <command>gcc43</command>, - замените <literal>"gcc44"</literal> на <literal>"gcc43"</literal> - и т.д. Следует отметить, что все вышеупомянутые библиотеки - обратно совместимы с библиотеками, поставляемыми с базовой - системой.</para> - </note> - - <warning> - <para>Некоторые C++ программы могут перестать работать, если - отсутствует корректная компоновка этих библиотек. Если невозможно - скомпоновать их все, рекомендуется сделать это по крайней мере - для libstdc++.so.</para> - </warning> - </sect2> - - <sect2 xml:id="custom-cflags"> - <title>Специальные установки <literal>CFLAGS</literal> для коллекции - портов</title> - - <para>Для портов, не поддерживающих специальные установки - <literal>CFLAGS</literal>, исправьте - <filename>/etc/make.conf</filename> согласно следующему примеру:</para> - - <programlisting>.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc44) -CC=gcc44 -CXX=g++44 -CPP=cpp44 -CFLAGS+=-mssse3 -.endif</programlisting> - - <para>Возможно заменить полностью <literal>CFLAGS</literal> и/или - определить <literal>CPUTYPE</literal>. Мы рекомендуем устанавливать - <literal>CPUTYPE</literal> так как во многих портах флаги оптимизации - выбираются, базируясь на значении этой переменной.</para> - </sect2> - - <sect2 xml:id="excluding-unbuildable-ports"> - <title>Исключение портов, которые не собираются с новой версией - <application>GCC</application></title> - - <para>Для того, чтобы исключить порты, которые не собираются со - специальной версией <application>GCC</application>, исправьте - <filename>/etc/make.conf</filename> согласно следующему - примеру:</para> - - <programlisting>.if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc44) -.if empty(.CURDIR:M/usr/ports/net/openldap*) -CC=gcc44 -CXX=g++44 -CPP=cpp44 -.endif -.endif</programlisting> - - <para>Пример, приведённый выше, отменяет принудительное использование - <command>gcc</command> 4.4 для портов - <package>net/openldap</package>*. Также - возможно указать больше портов в одной строке:</para> - - <programlisting>.if empty(.CURDIR:M/usr/ports/net/openldap*) && empty(.CURDIR:M/usr/ports/xxx/yyy) && ...</programlisting> - </sect2> - </sect1> - - <sect1 xml:id="performance-imparct"> - <title>Влияние на производительность исполняемых файлов</title> - - <para>Использование <application>GCC</application> версии 4.4 с - разрешенным набором инструкций <acronym>SSSE3</acronym> - (если они поддерживаются <acronym>CPU</acronym>) может дать до 10% - увеличения средней производительности исполняемых файлов. В некоторых - тестах прирост производительности превышал 20% (например, в обработке - мультимедийных данных).</para> - - <para>В таблице, размещенной на <uri xlink:href="http://people.freebsd.org/~mm/benchmarks/perlbench/">http://people.freebsd.org/~mm/benchmarks/perlbench/</uri>, - показано сравнение <application>GCC</application> в настоящее время - включенного в базу &os;, <application>GCC</application> версии 4.3 и - <application>GCC</application> версии 4.4 с различными комбинациями - <literal>CFLAGS</literal>. Для сравнений производительности - использовался тестовый пакет perlbench.</para> - - </sect1> -</article> |