<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sb0y[AT]home &#187; hardened</title>
	<atom:link href="http://www.bagrincev.ru/tag/hardened/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bagrincev.ru</link>
	<description>Уютный бложик девелопера.</description>
	<lastBuildDate>Fri, 30 Jul 2010 13:23:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>GCC 4 на Gentoo 2008 Hardened</title>
		<link>http://www.bagrincev.ru/gcc-4-%d0%bd%d0%b0-gentoo-2008-hardened/</link>
		<comments>http://www.bagrincev.ru/gcc-4-%d0%bd%d0%b0-gentoo-2008-hardened/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 22:15:17 +0000</pubDate>
		<dc:creator>Sb0y</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[О сервере]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gcc4]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[hardened]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.bagrincev.ru/?p=594</guid>
		<description><![CDATA[Gentoo Hardened по-умолчанию всегда поставляется с GCC 3. С одной стороны &#8211; это хорошо, ибо новые технологии это конечно здорово, но на сервере предпочтение лучше отдавать вещам проверенным. Эта истина не всегда применима к суровой реальности. Одна из причин, по который Вам скорей всего понадобится компилятор нового поколения в системе &#8211; это современный процессор, особенности ]]></description>
			<content:encoded><![CDATA[<p>Gentoo Hardened по-умолчанию всегда поставляется с GCC 3.</p>
<p>С одной стороны &#8211; это хорошо, ибо новые технологии это конечно здорово, но на сервере предпочтение лучше отдавать вещам проверенным. Эта истина не всегда применима к суровой реальности.</p>
<p>Одна из причин, по который Вам скорей всего понадобится компилятор нового поколения в системе &#8211; это современный процессор, особенности которого учитываются в правильно настроенном GCC4.</p>
<p><span id="more-594"></span></p>
<p>В общем, ближе к делу. Первые грабли  на которые я напоролся &#8211; версии ПО. Продолжая чтение этого текста, убедитесь что у вас установлен binutils версии не ниже, чем <strong>2.17</strong>. Если с этим всё в порядке, система может использовать старую версию, так что рекомендую запустить <em><strong>binutils-config -l. </strong></em>Тоже самое и с ядром Linux. Убедитесь что hardened-sources не младше 2.6.28-r9, а linux-headers не младше 2.6.27-r2.</p>
<p>После того, как убедитесь что всё в порядке, переключитесь на компилятор vanilla, через утилиту gcc-config.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gcc-config <span style="color: #660033;">-l</span>
gcc-config <span style="color: #000000; font-weight: bold;">&lt;</span> версия-gcc<span style="color: #000000; font-weight: bold;">&gt;</span>-vanilla
<span style="color: #7a0874; font-weight: bold;">source</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile</pre></div></div>

<p>Теперь нужно пересобрать библиотеку C и сам компилятор. Без этого GCC4 не соберётся.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">USE</span>=<span style="color: #ff0000;">&quot;-hardened&quot;</span> emerge <span style="color: #660033;">--oneshot</span> =sys-libs<span style="color: #000000; font-weight: bold;">/</span>glibc
<span style="color: #007800;">USE</span>=<span style="color: #ff0000;">&quot;-hardened&quot;</span> emerge <span style="color: #660033;">--oneshot</span> =sys-devel<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">gcc</span></pre></div></div>

<p>После этого, используя утилиту gcc-config выбираем версию GCC с hardened.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gcc-config <span style="color: #660033;">-l</span>
gcc-config <span style="color: #000000; font-weight: bold;">&lt;</span> версия-gcc<span style="color: #000000; font-weight: bold;">&gt;</span>-hardened
<span style="color: #7a0874; font-weight: bold;">source</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile</pre></div></div>

<p>Снова пересобираем <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #660033;">--oneshot</span> =sys-libs<span style="color: #000000; font-weight: bold;">/</span>glibc
emerge <span style="color: #660033;">--oneshot</span> =sys-devel<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">gcc</span></pre></div></div>

<p>Ну и наконец, пересобирём мир с новым компилятором.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">emerge <span style="color: #660033;">-e</span> world</pre></div></div>

<p>Вот и всё. Не забудьте потом прогнать revdep-rebuild <img src='http://www.bagrincev.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bagrincev.ru/gcc-4-%d0%bd%d0%b0-gentoo-2008-hardened/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
