<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Релиз набора компиляторов GCC 4.6.0]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=12249</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=12249&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Релиз набора компиляторов GCC 4.6.0».]]></description>
		<lastBuildDate>Tue, 29 Mar 2011 19:08:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Релиз набора компиляторов GCC 4.6.0]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=162390#p162390</link>
			<description><![CDATA[<p>Ну почему же -- бывают. Только ведь ошибка ошибке рознь!</p><p>Иная ошибка очень редко выскакивает, при каких-нибудь очень экзотических условиях. И такую фиг выловишь. Просто чтобы выловить ошибку, нужно как минимум о ней знать. А что бы знать о ней, нужно чтобы она себя хотя бы раз проявила. А если она себя не проявляет, значит ее и нет. Беспокоиться не о чем.</p><p>Мне сложно привести примеры таких ошибок. Лучше посмотреть рипорты и оценить риски.</p>]]></description>
			<author><![CDATA[null@example.com (zhevak)]]></author>
			<pubDate>Tue, 29 Mar 2011 19:08:40 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=162390#p162390</guid>
		</item>
		<item>
			<title><![CDATA[Re: Релиз набора компиляторов GCC 4.6.0]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=162373#p162373</link>
			<description><![CDATA[<p>мне вот что интересно.<br />Когда пишут компиляторы.. в них никогда ошибок не бывает.</p><p>Их типа легко тестировать?</p>]]></description>
			<author><![CDATA[null@example.com (vkonnov)]]></author>
			<pubDate>Tue, 29 Mar 2011 18:39:46 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=162373#p162373</guid>
		</item>
		<item>
			<title><![CDATA[Re: Релиз набора компиляторов GCC 4.6.0]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=161128#p161128</link>
			<description><![CDATA[<p>Ну теперь держись world!<br />Я тебя make!</p>]]></description>
			<author><![CDATA[null@example.com (Vadimsky)]]></author>
			<pubDate>Sat, 26 Mar 2011 17:40:52 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=161128#p161128</guid>
		</item>
		<item>
			<title><![CDATA[Релиз набора компиляторов GCC 4.6.0]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=161001#p161001</link>
			<description><![CDATA[<p>После почти года разработки вышел набор компиляторов <a href="http://gcc.gnu.org/">GCC 4.6.0</a>, в котором добавлена поддержка <a href="http://www.opennet.ru/opennews/art.shtml?num=24209">языка программирования</a> <a href="http://golang.org/">Go</a>, созданного инженерами Google, а также добавлен новый уровень оптимизации &quot;-Ofast&quot;, улучшена поддержка генерации кода для процессоров Intel Core 2 и выше.</p><p>Основные <a href="http://gcc.gnu.org/gcc-4.6/changes.html">изменения</a>:</p><ul><li><p><strong>Общие нюансы</strong>:<br /></p><ul><li><p>Добавлена поддержка стандартной библиотеки функций Bionic и возможность прямой сборки библиотек и приложений для платформы Android;</p></li><li><p>Интегрирована поддержка языка программирования Go (фронтэнд &quot;gccgo&quot;), которая не активирована по умолчанию и требует сборки с опцией &quot;--enable-languages&quot;;</p></li><li><p>Опции сборки &quot;-b архитектура_для_сборки&quot; и &quot;-v версия_компилятора&quot; были убраны, потому что они не всегда работали корректно. Для этих целей предлагается использовать &quot;machine-gcc&quot; для кросс-компиляции или &quot;архитектура-gcc-версия&quot; для использования отличной от умолчания версии;</p></li><li><p>GCC стал более строг при использовании флагов компиляции, так если ранее можно было использовать флаги &quot;--as-needed&quot; и &quot;--export-dynamic&quot;, предназначавшиеся для линковщика, теперь нужно указывать их правильно: &quot;-Wl,--as-needed&quot; и &quot;-Wl,--export-dynamic&quot;;</p></li><li><p>Инфраструктура оптимизации C программ (-combine) была убрана в пользу более общей инфраструктуры оптимизации на стадии линковки (LTO);</p></li><li><p>GCC теперь включает математическую библиотеку libquadmath, распространяемую под лицензией LGPL, которая позволяет производить вычисления учетверённой точности с типом данным __float128, который пока доступ только на архитектурах x86, x86-64 и Itanium;</p></li><li><p>Часть портов GCC была объявлена устаревшей и будет исключена из GCC 4.7.0:</p><ul><li><p>Argonaut ARC (arc-*)</p></li><li><p>National Semiconductor CRX (crx-*)</p></li><li><p>Motorola 68HC11 и 68HC12 (m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*)</p></li><li><p>Sunplus S+core (score-*)</p></li></ul></li><li><p>Объявлены устаревшими индивидуальные порты некоторых архитектур:</p><ul><li><p>Interix (i[34567]86-*-interix3*)</p></li><li><p>Generic ARM PE (arm-*-pe*, за исключением arm*-wince-pe*)</p></li><li><p>MCore PE (mcore-*-pe*)</p></li><li><p>SH SymbianOS (sh*-*-symbianelf*)</p></li><li><p>GNU Hurd на платформах Alpha и PowerPC (alpha*-*-gnu*, powerpc*-*-gnu*)</p></li><li><p>M68K uClinux (старый ABI) (m68k-*-uclinuxoldabi*)</p></li><li><p>a.out NetBSD (arm*-*-netbsd*, i[34567]86-*-netbsd*, vax-*-netbsd*, но не *-*-netbsdelf*)</p></li></ul></li><li><p><a href="http://www.opennet.ru/opennews/art.shtml?num=26233">Убрана</a> поддержка архитектур, объявленных устаревшими в <a href="http://gcc.gnu.org/gcc-4.5/changes.html#obsoleted">GCC 4.5.0</a>;</p></li></ul></li><li><p><strong>Улучшения в оптимизации кода</strong>:</p><ul><li><p>Добавлен новый уровень оптимизации &quot;-Ofast&quot;, который основан на опциях -O3, но при этом может влиять на соответствие стандартам результирующего кода, например, он включает в себя опцию &quot;-ffast-math&quot;;</p></li><li><p>Подсистема оптимизации <a href="http://gcc.gnu.org/projects/lto/whopr.pdf">Scalable Whole Program Optimizer</a> (WHOPR) объявлена стабильной и используется по умолчанию при включении оптимизации уровня финальной компиляции (LTO, link time optimization). Для использования классической версии LTO, нужно использовать опцию &quot;-flto-partition=none&quot;;</p></li><li><p>В LTO появилась возможность параллелизации выполнения, используя опцию компиляции &quot;-flto=количество&quot;;</p></li><li><p>В LTO исправлено множество ошибок, теперь с её помощью можно собрать сам GCC и Mozilla Firefox;</p></li><li><p>Были улучшены возможности межпроцедурной оптимизации: была добавлена поддержка LTO и улучшены механизмы эвристики;</p></li><li><p>Добавлена опция компиляции &quot;-fstack-usage&quot;, которая выводит в отдельный файл информацию об использовании стека каждой функцией;</p></li><li><p>Улучшено потребление памяти компилятором и время компиляции, например, для x86-64 архитектуры при использовании LTO время компиляции уменьшилось на 10%;</p></li><li><p>В библиотеке libstdc++ улучшена производительность при работе в режиме отладки;</p></li></ul></li><li><p><strong>Изменения в поддержке языков C и C++</strong>:<br /></p><ul><li><p>Добавлена поддержка нового типа &quot;__int128&quot; для архитектур, которые это позволяют;</p></li><li><p>С помощью флагов препроцессора &quot;#pragma GCC diagnostic&quot; прямо в коде можно указать типы warning&#039;ов, которые будет выводить компилятор на этапе компиляции;</p></li><li><p>Добавлена опция &quot;-fmax-errors=количество&quot;, которая заставляет компилятор прекращать работу при достижение заданного количества ошибок;</p></li><li><p>Для языка Си добавлена экспериментальная поддержка некоторых возможностей стандарта C1X:<br /></p><ul><li><p>Static assertions (ключевое слово _Static_assert);</p></li><li><p>Переопределение Typedef;</p></li><li><p>Новые макросы из float.h;</p></li><li><p>Анонимные структуры и объединения (union);</p></li></ul></li><li><p>В компиляторе C++ улучшена поддержка стандарта C++0x;</p></li></ul></li><li><p><strong>Улучшения в поддержке процессорных архитектур</strong>:</p><ul><li><p>Добавлена поддержка процессоров Cortex-M4 версии v7-em;</p></li><li><p>Добавлена поддержка LEON-серий процессоров SPARC V8;</p></li><li><p>Добавлена поддержка оптимизации для Intel Core 2 процессоров, используя опции &quot;-march=core2&quot; и &quot;-mtune=core2&quot;;</p></li><li><p>Добавлена поддержка оптимизации для Intel Core i3/i5/i7 процессоров, используя опции &quot;-march=corei7&quot; и &quot;-mtune=corei7&quot;;</p></li><li><p>Добавлена поддержка оптимизации для Intel Core i3/i5/i7 процессоров, поддерживающих векторные инструкции AVX, используя опции &quot;-march=corei7-avx&quot; и &quot;-mtune=corei7-avx&quot;;</p></li><li><p>Добавлена поддержка оптимизации для AMD Bobcat (family 14) процессоров, поддерживающих векторные инструкции AVX, используя опции &quot;-march=btver1&quot; и &quot;-mtune=btver1&quot;;</p></li><li><p>Для архитектуры PPC добавлена поддержка Darwin64 ABI;</p></li><li><p>Для x86 и x86-64 Linux приложений добавлена возможность использования не непрерывного стэка, используя опцию &quot;-fsplit-stack&quot;. Эта опция полезна при компиляции многопоточных программ и в этом случае не придётся указывать максимальный размер стэка при создании потока;</p></li><li><p>Опция &quot;-fomit-frame-pointer&quot; теперь включена по умолчанию на уровнях оптимизации, кроме &quot;-Os&quot; (оптимизация для размера) для архитектур Linux-x86 и Darwin-x86;</p></li><li><p>x86 Darwin, FreeBSD, Solaris 2, MinGW и Cygwin теперь поддерживают тип данных &quot;__float128&quot;;</p></li><li><p>Поддержка AVX-арифметики с плавающей точкой можно указать опцией &quot;--with-fpmath=avx&quot;;</p></li></ul></li></ul><p>Источник — <a href="http://opennet.ru/opennews/art.shtml?num=30035">http://opennet.ru/opennews/art.shtml?num=30035</a><br />Главная ссылка к новости — <a href="http://gcc.gnu.org/gcc-4.6/">http://gcc.gnu.org/gcc-4.6/</a></p>]]></description>
			<author><![CDATA[null@example.com (XRevan86)]]></author>
			<pubDate>Sat, 26 Mar 2011 13:13:45 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=161001#p161001</guid>
		</item>
	</channel>
</rss>
