Hardened Gentoo на основе GCC 4.3 (делимся опытом)

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

Хочу поделиться своим опытом построения hardened Gentoo на основе gcc 4.3.x для использования на ноутбуке.

На нескольких из моих подопечных машин в качестве ЦПУ стоит Intel Core 2, системы собирались GCC 4.1.2, который не умеет полностью затачивать код под эти процессоры. С появлениме ветки 4.3 такая возможность появилась. Через неделю после появления "исправленного" GCC 4.3.1 в ~amd64 я подумал, что сейчас уже возможно собрать вполне пригодную систему с полной заточкой под моё железо. Я решил пересобрать текущую default/linux/amd64/2008.0/desktop, gcc-4.1.2, ACCEPT_KEYWORDS="amd64" в hardened/linux/amd64/2008.0/desktop, gcc-4.3.1, glibc-2.7-r2, ACCEPT_KEYWORDS="amd64"

Что делал:

1) Изменил профиль:

Код: Выделить всё

ln -snf /usr/portage/profiles/hardened/linux/amd64/2008.0/desktop /etc/make.profile

2) Изменил в /etc/make.conf:

Код: Выделить всё

CFLAGS="-march=core2 -O2 -pipe"

3) Размаскировал необходимые мне пакеты включая недоделанный в hardened gcc-4 и "вредные и опасные" драйверы nvidia.
Добавил в /etc/portage/package.keywords:

Код: Выделить всё

# hardened
       sys-kernel/hardened-sources
       sys-devel/gcc
       sys-libs/glibc
       app-admin/paxtest


в /etc/portage/package.unmask:

Код: Выделить всё

# hardened
       sys-devel/gcc
       x11-drivers/nvidia-drivers
       media-video/nvidia-settings


в /etc/portage/package.mask:

Код: Выделить всё

=sys-libs/glibc-2.8_p*


4) Пересобрал систему такой командой:

Код: Выделить всё

emerge -v linux-headers glibc binutils gcc-config gcc && gcc-config x86_64-pc-linux-gnu-4.3.1 && emerge -vb linux-headers glibc binutils gcc-config gcc && emerge -bkev system && emerge -bkev world


Всё прошло без приключений до сборки 33 пакета командой emerge -bkev world. Несколько раз во время пересборки мира что-то не собиралось, делал emerge --resume --skip-first -a (y не жал), разбирался с вылетевшим пакетом, жал y. Разборки в большинстве случаев сводились к добавления пакета в package.keywords и выполнению emerge -1vb name, в итоге я надобавлял:

Код: Выделить всё

dev-libs/libsigc++
       dev-libs/libebml
       sci-libs/cln
       dev-libs/boost
       dev-util/boost-build
       sys-libs/libsmbios
       dev-cpp/glibmm
       dev-libs/glib
       app-cdr/cdrdao
       media-libs/plotutils
       media-libs/netpbm
       app-text/libwpd
       media-video/mjpegtools
       media-video/dvgrab
       x11-libs/qt
       dev-cpp/gtkmm
       media-video/mkvtoolnix
       net-p2p/linuxdcpp **
       app-antivirus/klamav
       sci-astronomy/celestia
       net-wireless/kdebluetooth
       net-wireless/bluez-libs
       net-wireless/bluez-utils
       media-video/mplayerthumbs


5) Поставил sys-kernel/hardened-sources, перезагрузился на новое ядро.
Проверил работает ли защита:

Код: Выделить всё

 # paxtest  blackhat
       PaXtest - Copyright© 2003,2004 by Peter Busser <peter@adamantix.org>
       Released under the GNU Public Licence version 2 or later

       Writing output to paxtest.log
       It may take a while for the tests to complete
       Test results:
       PaXtest - Copyright© 2003,2004 by Peter Busser <peter@adamantix.org>
       Released under the GNU Public Licence version 2 or later

       Mode: blackhat
       Linux book 2.6.25-hardened #1 SMP Wed Jun 18 19:18:54 MSD 2008 x86_64 Intel® Core™2 Duo CPU T7500 @ 2.20GHz GenuineIntel GNU/Linux

       Executable anonymous mapping             : Killed
       Executable bss                           : Killed
       Executable data                          : Killed
       Executable heap                          : Killed
       Executable stack                         : Killed
       Executable anonymous mapping (mprotect)  : Killed
       Executable bss (mprotect)                : Killed
       Executable data (mprotect)               : Killed
       Executable heap (mprotect)               : Killed
       Executable stack (mprotect)              : Killed
       Executable shared library bss (mprotect) : Killed
       Executable shared library data (mprotect): Killed
       Writable text segments                   : Killed
       Anonymous mapping randomisation test     : 34 bits (guessed)
       Heap randomisation test (ET_EXEC)        : 13 bits (guessed)
       Heap randomisation test (ET_DYN)         : No randomisation
       Main executable randomisation (ET_EXEC)  : 33 bits (guessed)
       Main executable randomisation (ET_DYN)   : No randomisation
       Shared library randomisation test        : 33 bits (guessed)
       Stack randomisation test (SEGMEXEC)      : No randomisation
       Stack randomisation test (PAGEEXEC)      : 40 bits (guessed)
       Return to function (strcpy)              : paxtest: return address contains a NULL byte.
       Return to function (memcpy)              : Vulnerable
       Return to function (strcpy, RANDEXEC)    : paxtest: return address contains a NULL byte.
       Return to function (memcpy, RANDEXEC)    : Vulnerable
       Executable shared library bss            : Killed
       Executable shared library data           : Killed


После перезагрузки всё заработало без нареканий, за некоторым исключением.

Не работали приложения активно использующие видеоподсистему и 3d ускорение:
media-video/nvidia-settings
sci-astronomy/celestia
sci-astronomy/stellarium
games-fps/nexuiz
media-gfx/freepv


Помогло частичное отключение защиты:

Код: Выделить всё

paxctl -m /usr/bin/glxinfo
    paxctl -m /usr/bin/celestia
    paxctl -m /usr/bin/stellarium
    paxctl -m /usr/games/bin/nexuiz-glx
    paxctl -m /usr/bin/freepv-gl*

    paxctl -v /usr/bin/stellarium
    PaX control v0.5
    Copyright 2004,2005,2006,2007 PaX Team <pageexec@freemail.hu>

    - PaX flags: -----m-x-e-- [/usr/bin/stellarium]
            MPROTECT is disabled
            RANDEXEC is disabled
            EMUTRAMP is disabled


Сейчас все эти пакеты работают без нареканий, в nexuiz я не заметил тормозов, но подозреваю падение fps.

app-office/openoffice запускаться тоже не хотел, решение:

Код: Выделить всё

paxctl -cm /usr/lib/openoffice/program/soffice.bin


С этими пакетами пришлось дополнительно поработать:
net-p2p/linuxdcpp # из cvs работает
app-antivirus/klamav # пока не работает, решение ещё не искал
media-video/mplayerthumbs # решение: http://bugs.gentoo.org/show_bug.cgi?id=225745
sci-calculators/fung-calc # он ведь древний!


После послабленний wine вполне работает:

Код: Выделить всё

paxctl -xperms /usr/bin/wine-preloader /usr/bin/wine /usr/bin/wineserver


Я также обновил систему до baselayout-2, работаю на пересобранной системе больше суток, каких-либо неприятностей больше не было.

Остались такие вопросы:
Мне удалось найти крайне мало информации по gcc 4.3 и hardened Gentoo, хотелось бы узнать больше об этой связке.
В сравнении с http://www.gentoo.org/proj/en/hardened/grsecurity.xml paxtest показывает отсутствие рандомизации ET_DYN, это связанно с gcc4, ядром или чем?
При сборке sys-libs/glibc-2.7-r2 выдал:

Код: Выделить всё

WARN: setup
    PIE hardening not applied, as your compiler doesn\'t default to PIE


Исходя из http://bugs.gentoo.org/show_bug.cgi?id=198121 большая часть неприятностей с новой веткой gcc уже решена, предлагаю в этой теме обсуждать встретившиеся из оставшихся.
Спасибо сказали:
_YT_
Сообщения: 239
ОС: Gentoo Linux ~amd64

Re: Hardened Gentoo на основе GCC 4.3

Сообщение _YT_ »

У меня ошибки сборки полезли многих пакетов, когда написал

CFLAGS="-march=core2 -O2 -pipe"

Вернулся к CFLAGS="-march=native -O2 -pipe", все собирается.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

_YT_
Какая версия gcc и glibc?

У меня не собиралось несколько десятков пакетов, но я с этим разобрался.
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Civil »

Кстати, как минимум на x86-64, -march=core2 != -march=native
Если выполнить gcc -c -Q -march=native --help=target и сравнить с gcc -c -Q -march=core2 --help=target то можно заметить, что последний НЕ включает -mcx16 и -msahf - насколько это на что-то влияет - черт его знает, но факт есть факт.
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

Civil
http://gcc.gnu.org/onlinedocs/gcc/i386-and...4-Options.html :
-mcx16
This option will enable GCC to use CMPXCHG16B instruction in generated code. CMPXCHG16B allows for atomic operations on 128-bit double quadword (or oword) data types. This is useful for high resolution counters that could be updated by multiple processors (or cores). This instruction is generated as part of atomic built-in functions: see Atomic Builtins for details.
-msahf
This option will enable GCC to use SAHF instruction in generated 64-bit code. Early Intel CPUs with Intel 64 lacked LAHF and SAHF instructions supported by AMD64 until introduction of Pentium 4 G1 step in December 2005. LAHF and SAHF are load and store instructions, respectively, for certain status flags. In 64-bit mode, SAHF instruction is used to optimize fmod, drem or remainder built-in functions: see Other Builtins for details

Действительно как-то это странно.
Я всё же предпочитаю жёстко указать -march=core2 - так удобней и надёжней.
Спасибо сказали:
Аватара пользователя
Cianos
Сообщения: 343
Статус: ищу
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Cianos »

все собирается без каких либо проблем

Код: Выделить всё

CFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mmmx"


Код:

self self # emerge --info Portage 2.2_rc1 (default/linux/amd64/2008.0, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.25-gentoo-r5 x86_64) ================================================================= System uname: Linux-2.6.25-gentoo-r5-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T7300_@_2.00GHz-with-glibc2.2.5 Timestamp of tree: Fri, 20 Jun 2008 14:45:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.5.2-r4 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.62 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 2.2.4 virtual/os-headers: 2.6.25-r4 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mmmx" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mmmx" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks parallel-fetch preserve-libs sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles ftp://ftp.corbina.ru/pub/Linux/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://files.gentoo.org ftp://ftp.mirrorservice.org/sites/www.ibi...g/gentoo/" LANG="ru_RU.UTF-8" LC_ALL="" LDFLAGS="" LINGUAS="ru" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/home/self/src/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="7zip X X509 a52 aac aalib accessibility acl acpi akode alsa amd64 amr apache2 apm bluetooth branding bzip2 cairo cdr chm cli cracklib crypt ctype cups curl cvs dbus djvu dri dvb dvd dvdr dvdread encode fasbuild ffmpeg firefox flac fortran ftp gdbm gecko gif gimp gpm hal iconv imagemagick isdnlog javascript jpeg jpeg2k json kde lame libnotify libsamplerate lm_sensors mad midi mjpeg mmx mozdevelop mp2 mp3 mp4 mpeg mudflap multilib mysql ncurses network nls nptl nptlonly nsplugin ntp obex ogg opengl openmp oscar pam pch pcmcia pcre pdf perl php png pppd python qt-static qt3 qt3support qt4 quicktime rar readline reflection session slang smp speex spell spl sqlite sse sse2 ssl symlink tcpd unicode usb v4l2 vorbis x264 xcomposite xine xinerama xml xorg xosd xpm xrandr xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="peruser" ELIBC="glibc" INPUT_DEVICES="synaptics keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Моё Gentoo круче твоего!
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

Cianos
приятно видеть ещё одно подтверждение пригодности свежего gcc.
Зачем прописывать -msse -msse2 -msse3 -mmmx? Разве -march=core2 их в себя не включает?
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Civil »

Nikoli
Я всё же предпочитаю жёстко указать -march=core2 - так удобней и надёжней.

Я предпочитаю с -march=native. Т.к. и то и другое Core2 поддерживать (см. /proc/cpuinfo), так почему бы не использовать?

Зачем прописывать -msse -msse2 -msse3 -mmmx? Разве -march=core2 их в себя не включает?

Код: Выделить всё

gcc -c -Q -march=core2 --help=target

Выполни и посмотри:

Код: Выделить всё

  -msse                                 [выключено]
  -msse2                                [выключено]
  -msse3                                [выключено]
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение razum »

Не пересобираются binutils & gcc-config:

Код:

# emerge -vb binutils These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-devel/binutils-2.18-r1 USE="nls -multislot -multitarget -test -vanilla" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB >>> Verifying ebuild Manifests... >>> Emerging (1 of 1) sys-devel/binutils-2.18-r1 to / * binutils-2.18.tar.bz2 RMD160 SHA1 SHA256 size;-) ... [ ok ] * binutils-2.18-patches-1.5.tar.bz2 RMD160 SHA1 SHA256 size;-) ... [ ok ] * checking ebuild checksums;-) ... [ ok ] * checking auxfile checksums;-) ... [ ok ] * checking miscfile checksums;-) ... [ ok ] * checking binutils-2.18.tar.bz2;-) ... [ ok ] * checking binutils-2.18-patches-1.5.tar.bz2;-) ... [ ok ] >>> Unpacking source... >>> Unpacking binutils-2.18.tar.bz2 to /var/tmp/portage/sys-devel/binutils-2.18-r1/work >>> Unpacking binutils-2.18-patches-1.5.tar.bz2 to /var/tmp/portage/sys-devel/binutils-2.18-r1/work * Applying various patches (bugfixes/updates) ... * 03_all_binutils-2.15.92.0.2-ppc64-pie.patch ... [ ok ] * 04_all_binutils-2.15.92.0.2-place-orphan.patch ... [ ok ] * 07_all_binutils-2.18-windres.patch ... [ ok ] * 08_all_binutils-RPATH_ENVVAR-smack.patch ... [ ok ] * 09_all_binutils-ld-tests-CXXFLAGS.patch ... [ ok ] * 12_all_sh-targets.patch ... [ ok ] * 13_all_mips-gnu-hash-support.patch ... [ ok ] * 18_all_binutils-makeinfo-version.patch ... [ ok ] * 20_all_binutils-skip-some-tests.patch ... [ ok ] * 25_all_binutils-for-build-flags.patch ... [ ok ] * 30_all_binutils-multitarget-fixup.patch ... [ ok ] * 33_all_binutils-gnu-relro-fixups.patch ... [ ok ] * 42_all_012_check_ldrunpath_length.patch ... [ ok ] * 63_all_binutils-2.18-pt-pax-flags-20070828.patch ... [ ok ] * 65_all_binutils-2.18-amd64-32bit-path.patch ... [ ok ] * 66_all_binutils-2.17.50.0.2-warn-textrel.patch ... [ ok ] * 76_all_use-new-ld-dtags.patch ... [ ok ] * 77_all_generate-gnu-hash.patch ... [ ok ] * 78_all_use-relro.patch ... [ ok ] * 91_all_libiberty-pic.patch ... [ ok ] * Done with patching * Fixing misc issues in configure files * Using GNU config files from /usr/share/libtool * Updating config.sub [ ok ] * Updating config.guess [ ok ] * Running elibtoolize in: binutils-2.18 * Applying install-sh-1.5.4.patch ... * Applying portage-2.2.patch ... * Applying sed-1.5.6.patch ... >>> Source unpacked. >>> Compiling source in /var/tmp/portage/sys-devel/binutils-2.18-r1/work/binutils-2.18 ... * CATEGORY: sys-devel * CBUILD: i686-pc-linux-gnu * CHOST: i686-pc-linux-gnu * CTARGET: i686-pc-linux-gnu * CFLAGS: -march=core2 -O2 -pipe * LDFLAGS: ./configure --prefix=/usr --host=i686-pc-linux-gnu --target=i686-pc-linux-gnu --datadir=/usr/share/binutils-data/i686-pc-linux-gnu/2.18 --infodir=/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info --mandir=/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man --bindir=/usr/i686-pc-linux-gnu/binutils-bin/2.18 --libdir=/usr/lib/binutils/i686-pc-linux-gnu/2.18 --libexecdir=/usr/lib/binutils/i686-pc-linux-gnu/2.18 --includedir=/usr/lib/binutils/i686-pc-linux-gnu/2.18/include --enable-64-bit-bfd --enable-shared --disable-werror --without-included-gettext --build=i686-pc-linux-gnu --enable-secureplt checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. * * ERROR: sys-devel/binutils-2.18-r1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2731: Called toolchain-binutils_src_compile * environment, line 3269: Called die * The specific snippet of code: * "${S}"/configure ${myconf} || die "configure failed"; * The die message: * configure failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/sys-devel/binutils-2.18-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-devel/binutils-2.18-r1/temp/environment'. * * Messages for package sys-devel/binutils-2.18-r1: * * ERROR: sys-devel/binutils-2.18-r1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2731: Called toolchain-binutils_src_compile * environment, line 3269: Called die * The specific snippet of code: * "${S}"/configure ${myconf} || die "configure failed"; * The die message: * configure failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/sys-devel/binutils-2.18-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-devel/binutils-2.18-r1/temp/environment'.

Код:

# emerge -vb gcc-config These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-devel/gcc-config-1.4.0-r4 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB >>> Verifying ebuild Manifests... >>> Emerging (1 of 1) sys-devel/gcc-config-1.4.0-r4 to / * checking ebuild checksums;-) ... [ ok ] * checking auxfile checksums;-) ... [ ok ] * checking miscfile checksums;-) ... [ ok ] >>> Unpacking source... >>> Source unpacked. >>> Compiling source in /var/tmp/portage/sys-devel/gcc-config-1.4.0-r4/work ... i686-pc-linux-gnu-gcc -march=core2 -O2 -pipe wrapper.c -o wrapper wrapper.c:1: ошибка: некорректное значение (core2) для ключа -march wrapper.c:1: ошибка: некорректное значение (core2) для ключа -mtune= make: *** [wrapper] Ошибка 1 * * ERROR: sys-devel/gcc-config-1.4.0-r4 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2351: Called die * The specific snippet of code: * emake CC="$(tc-getCC)" wrapper || die "compile wrapper" * The die message: * compile wrapper * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/sys-devel/gcc-config-1.4.0-r4/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-config-1.4.0-r4/temp/environment'. * * Messages for package sys-devel/gcc-config-1.4.0-r4: * * ERROR: sys-devel/gcc-config-1.4.0-r4 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2351: Called die * The specific snippet of code: * emake CC="$(tc-getCC)" wrapper || die "compile wrapper" * The die message: * compile wrapper * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/sys-devel/gcc-config-1.4.0-r4/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-config-1.4.0-r4/temp/environment'

Мои конфы:

Код:

# emerge --info Portage 2.1.4.4 (default/linux/x86/2008.0, gcc-4.3.1, glibc-2.7-r2, 2.6.24-gentoo-r8 i686) ================================================================= System uname: 2.6.24-gentoo-r8 i686 Intel® Core&#153;2 Duo CPU E6750 @ 2.66GHz Timestamp of tree: Sun, 15 Jun 2008 01:45:01 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r13 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mmmx" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mmmx" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://mirror.ealtai.ru/Linux/gentoo" LANG="ru_RU.UTF-8" LC_ALL="" LINGUAS="ru" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="7zip X a52 aac aalib accessibility acl acpi akode alsa amr apache2 apm berkdb branding bzip2 cairo cdr chm cli cracklib crypt ctype cups curl cvs dbus djvu dri dvb dvd dvdr dvdread encode fasbuild ffmpeg firefox flac fortran ftp gdbm gecko gif gimp gpm hal iconv imagemagick ipv6 isdnlog javascript jpeg jpeg2k json kde lame libnotify libsamplerate lm_sensors mad midi mjpeg mmx mp2 mp3 mp4 mpeg mudflap mysql ncurses network nls nptl nptlonly nsplugin ogg opengl openmp oscar pam pch pcre pdf perl php png pppd python qt-static qt3 qt3support qt4 quicktime rar readline reflection session slang smp speex spell spl sqlite sse sse2 ssl symlink tcpd unicode usb v4l2 vorbis x264 x86 xcomposite xine xinerama xml xorg xosd xpm xrandr xulrunner xv xvid zlib" ALSA_CARDS="snd-hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" USERLAND="GNU" VIDEO_CARDS="fglrx" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

Код:

# grep -v "#" /etc/make.conf CFLAGS="-march=core2 -O2 -pipe -msse -msse2 -msse3 -mmmx" CXXFLAGS=${CFLAGS} MAKEOPTS="-j3" CHOST="i686-pc-linux-gnu" GENTOO_MIRRORS="http://mirror.ealtai.ru/Linux/gentoo" USE="7zip X a52 aac aalib accessibility acl acpi akode alsa amr apache2 apm branding bzip2 cairo cdr chm cli cracklib crypt ctype cups curl cvs dbus djvu dvb dvd dvdr dvdread encode fasbuild ffmpeg firefox flac fortran ftp gdbm gecko gif gimp gpm hal iconv imagemagick javascript jpeg jpeg2k json kde lame libnotify libsamplerate lm_sensors mad midi mjpeg mmx mp2 mp3 mp4 mpeg mudflap mysql ncurses network nls nptl nsplugin ogg opengl oscar pch pcre pdf perl php png python qt-static qt3 qt3support qt4 quicktime rar readline reflection session slang smp speex spell spl sqlite sse sse2 ssl symlink tcpd unicode usb v4l2 vorbis x264 xcomposite xine xinerama xml xorg xosd xpm xrandr xulrunner xv xvid zlib" LINGUAS="ru" INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="fglrx" ALSA_CARDS="snd-hda-intel"

Помогите пожалуйста!
ЗЫ glib-2.7 & gcc-4.3.1 встают и компилятся нормально
ЗЫЫ gcc-config i686-pc-linux-gnu-4.3.1
сделал и пересобрал glib-2.7 & gcc-4.3.1 заново (-vb)
И последнее: с -march=native те же ошибки
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение razum »

тут подумал, что коли там какой-то wrapper ругается то привожу еще:

Код:

# emerge -s wrapper Searching... [ Results for search key : wrapper ] [ Applications found : 11 ] * dev-java/java-config-wrapper Latest version available: 0.15 Latest version installed: 0.15 Size of files: 6 kB Homepage: http://www.gentoo.org/proj/en/java Description: Wrapper for java-config License: GPL-2 * dev-java/java-service-wrapper [ Masked ] Latest version available: 3.2.3 Latest version installed: [ Not Installed ] Size of files: 3,329 kB Homepage: http://wrapper.tanukisoftware.org/ Description: A wrapper that makes it possible to install a Java Application as daemon. License: java-service-wrapper * dev-perl/text-wrapper Latest version available: 1.01 Latest version installed: 1.01 Size of files: 7 kB Homepage: http://search.cpan.org/~cjm/ Description: The Perl Text::Wrapper Module License: || ( Artistic GPL-2 ) * dev-util/confix-wrapper [ Masked ] Latest version available: 0 Latest version installed: [ Not Installed ] Size of files: 0 kB Homepage: http://confix.sourceforge.net Description: Wrapper to select either confix1.py or confix2.py License: as-is * net-mail/mailwrapper Latest version available: 0.2.1 Latest version installed: [ Not Installed ] Size of files: 6 kB Homepage: http://www.gentoo.org/ Description: Program to invoke an appropriate MTA based on a config file License: BSD * net-wireless/ndiswrapper Latest version available: 1.50 Latest version installed: [ Not Installed ] Size of files: 193 kB Homepage: http://ndiswrapper.sourceforge.net/ Description: Wrapper for using Windows drivers for some wireless cards License: GPL-2 * net-www/nspluginwrapper [ Masked ] Latest version available: 0.9.91.5-r1 Latest version installed: [ Not Installed ] Size of files: 266 kB Homepage: http://www.gibix.net/projects/nspluginwrapper/ Description: Netscape Plugin Wrapper - Load 32bit plugins on 64bit browser License: GPL-2 * sys-apps/tcp-wrappers Latest version available: 7.6-r8 Latest version installed: 7.6-r8 Size of files: 112 kB Homepage: ftp://ftp.porcupine.org/pub/security/index.html Description: TCP Wrappers License: tcp_wrappers_license * sys-devel/autoconf-wrapper Latest version available: 4-r3 Latest version installed: 4-r3 Size of files: 0 kB Homepage: http://www.gentoo.org/ Description: wrapper for autoconf to manage multiple autoconf versions License: GPL-2 * sys-devel/automake-wrapper Latest version available: 3-r1 Latest version installed: 3-r1 Size of files: 0 kB Homepage: http://www.gentoo.org/ Description: wrapper for automake to manage multiple automake versions License: GPL-2 * x11-libs/fox-wrapper Latest version available: 2 Latest version installed: [ Not Installed ] Size of files: 0 kB Homepage: http://www.gentoo.org/ Description: wrapper for fox-config to manage multiple versions License: GPL-2

Может, что-нить отсюда размаскировать?
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

razum
Почему "checking for C compiler default output file name... configure: error: C compiler cannot create executables"? Может раздел какой-нибудь зря с noexec подключён?

Civil
Странно это с march. Ведь во всей документации советуют использовать только CFLAGS="-march=CPU -O2 -pipe" и лишь иногда довключать что-то.
Вообще они утверждают мною вышесказанное http://www.gentoo.org/doc/en/gcc-optimizat...style=printable :
-msse, -msse2, -msse3, -mmmx, -m3dnow

These flags enable the SSE, SSE2, SSE3, MMX, and 3DNow! instruction sets for x86 and x86-64 architectures. These are useful primarily in multimedia, gaming, and other floating point-intensive computing tasks, though they also contain several other mathematical enhancements. These instruction sets are found in more modern CPUs.

Important: Be sure to check if your CPU supports these by running cat /proc/cpuinfo. The output will include any supported additional instruction sets. Note that pni is just a different name for SSE3.

You normally don't need to add any of these flags to /etc/make.conf as long as you are using the correct -march (for example, -march=nocona implies -msse3). Some notable exceptions are newer VIA and AMD64 CPUs that support instructions not implied by -march (such as SSE3). For CPUs like these you'll need to enable additional flags where appropriate after checking the output of cat /proc/cpuinfo.
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение razum »

Есть такой раздел:

Код:

# grep -v "#" /etc/fstab /dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/sda2 / ext3 noatime 0 1 /dev/sda3 none swap sw 0 0 /dev/sda5 /usr reiserfs noatime 0 0 /dev/sda6 /home ext3 noatime 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro,users 0 0 /dev/fd0 /mnt/floppy auto noauto,users,codepage=866,iocharset=utf8 0 0 /dev/sdb7 /mnt/media/ ntfs-3g users 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0 /dev/sda1 /mnt/usb vfat noauto,codepage=866,iocharset=utf8,noexec,user 0 0
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

razum
А слона то я сразу и не разглядел! CFLAGS="-march=core2" и CHOST="i686-pc-linux-gnu" не совместимы http://gentoo-wiki.com/Safe_CFLAGS#Intel_C...Dual-Core_Exxxx
Для использования -march=core2 нужно собирать под amd64...
Спасибо сказали:
_YT_
Сообщения: 239
ОС: Gentoo Linux ~amd64

Re: Hardened Gentoo на основе GCC 4.3

Сообщение _YT_ »

Nikoli писал(а):
20.06.2008 21:10
_YT_
Какая версия gcc и glibc?

У меня не собиралось несколько десятков пакетов, но я с этим разобрался.


Nikoli,

glibc-2.7-r2
gcc-4.3.1

Кто-нибудь virtualbox собирал 1.6.2 на gcc-4.3? У меня пишет

>>> Unpacking source...
>>> Unpacking VirtualBox-1.6.2-OSE.tar.bz2 to /var/tmp/portage/app-emulation/virtualbox-1.6.2/work
* Applying virtualbox-1.6.2-remove-unused.patch ...
[ ok ]
>>> Source unpacked.
>>> Compiling source in /var/tmp/portage/app-emulation/virtualbox-1.6.2/work/VirtualBox-1.6.2 ...
Checking for environment: Determined build machine: linux.amd64, target machine: linux.amd64, OK.
Checking for kBuild: found, OK.
Checking for gcc:
** There are known problems with gcc version 4.3 when compiling the recompiler
** stuff. You need to specify a compatibility compiler with version < 4.3. Look
** for a package compat-gcc-34 on Fedora systems or something similar on other
** distributions and call configure with parameter --with-gcc-compat=gcc34.
*
* ERROR: app-emulation/virtualbox-1.6.2 failed.
* Call stack:
* ebuild.sh, line 49: Called src_compile
* environment, line 2850: Called die
* The specific snippet of code:
* ./configure ${myconf} || die "configure failed";
* The die message:
* configure failed
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/var/tmp/portage/app-emulation/virtualbox-1.6.2/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/app-emulation/virtualbox-1.6.2/temp/environment'.

Не хочется ставить еще, например, 3.4.6-r2 или какой-то еще, чтобы только virtualbox собрать.
Есть другие варианты, как собрать не устанавливая еще один gcc?
Спасибо сказали:
Аватара пользователя
JazzVoid
Сообщения: 63
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение JazzVoid »

Вот, предположим, я собрался перейти на Gentoo, процессор Intel Core 2 Duo. Значит, если я захочу полноценную оптимизацию под него, насколько сильные могут возникнуть проблемы со сборкой/установкой? :cc_confused: Простите за столь глупый вопрос, два года просидел на прекомпилированных пакетах, а если что-то и собирал - "старыми" версиями gcc
Gentoo @ amd64 & GCC 4.3.1. Faster, stronger, better.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

_YT_ собирать этот пакет не пробовал, но похоже не просто так они не позволяют с gcc 4.3 собирать... Либо ставить в другой слот ещё один gcc, либо использовать собранное на другой машине. Есть ещё app-emulation/virtualbox-bin


JazzVoid
Особых неприятностей с GCC 4.3.1 я не наблюдал. Из восьми сотен установленных пакетов пришлось собрать пару десятков из ~amd64 и всё. В целом пока сбоев в работе системы я не замечал.

Если ставите Gentoo впервые или есть сложности с командной строкой, лучше собрать сначала стабильную систему, освоиться, а потом уже экспериментировать. Во избежание возникновения отрицательного мнения об этой действительно надёжной системе.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение serzh-z »

Почитал тут вас и решил поставить gcc-4.3.1... Наивный, сколько раз зарекался не ставить нестабильный софт. :) Выяснилось, что, по-крайней мере, при обновлении glibmm, кажется, сборка останавливается. Вероятно, это не единственный пакет.

Из чего следует, что при сборке нужно периодически переключаться на стабильный gcc-4.1, который не понимает "march=native". И, разумеется, возникают пресловутые "compiler cannot create executables". Пришлось делать решение, позволяющее переключать march "на лету" (в bashrc для Paludis), в зависимости от выбранного компилятора.
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Civil »

Nikoli
Сам гцц утверждает обратное. Собственно подробнее не скажу ничего. Видимо надо пинать разработчиков гцц для объяснений.
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение serzh-z »

Nikoli писал(а):
22.06.2008 23:40
но похоже не просто так они не позволяют с gcc 4.3 собирать
Я так понимаю, что virtualbox основывается на кодовой базе qemu... А вот последний до сих пор официально так и не собирается с gcc4. Хотя в багзилле Дженту уже с год есть соответствующие патчи.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

serzh-z писал(а):
23.06.2008 09:59
Почитал тут вас и решил поставить gcc-4.3.1... Наивный, сколько раз зарекался не ставить нестабильный софт. smile.gif Выяснилось, что, по-крайней мере, при обновлении glibmm, кажется, сборка останавливается. Вероятно, это не единственный пакет.


Что мешало прочитать первое сообщение? ;) Это выяснялось ещё в нём...

Nikoli писал(а):
20.06.2008 17:10
Всё прошло без приключений до сборки 33 пакета командой emerge -bkev world. Несколько раз во время пересборки мира что-то не собиралось, делал emerge --resume --skip-first -a (y не жал), разбирался с вылетевшим пакетом, жал y. Разборки в большинстве случаев сводились к добавления пакета в package.keywords и выполнению emerge -1vb name, в итоге я надобавлял:

Я написал список этих пакетов, что мешает сократить вылеты, использую package.keywords?
Спасибо сказали:
ivanich
Сообщения: 72
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение ivanich »

Nikoli писал(а):
22.06.2008 00:20
razum
А слона то я сразу и не разглядел! CFLAGS="-march=core2" и CHOST="i686-pc-linux-gnu" не совместимы http://gentoo-wiki.com/Safe_CFLAGS#Intel_C...Dual-Core_Exxxx
Для использования -march=core2 нужно собирать под amd64...

Ты ссылку дальше смотрел? Там не сказано о какой архитектуре идет речь.
http://www.gnu.org/software/gcc/gcc-4.3/changes.html

У меня вся система собрана с

Код: Выделить всё

CHOST="i686-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -msse2 -msse3 -pipe -fomit-frame-pointer"

и нормально работает.
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение razum »

Уважаемый ivanich!
Может тогда подскажите относительно моей проблемы?
Я уж было смирился, ибо на amd64 переходить не хочется.
Спасибо сказали:
ivanich
Сообщения: 72
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение ivanich »

razum писал(а):
24.06.2008 01:50
Уважаемый ivanich!
Может тогда подскажите относительно моей проблемы?
Я уж было смирился, ибо на amd64 переходить не хочется.

Первым делом make.conf покажите.
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение razum »

Ну посмотрите повыше.
Там листинги обоих ошибок (binutils & gcc-config), make.conf, emerge --info
Спасибо сказали:
ivanich
Сообщения: 72
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение ivanich »

razum писал(а):
25.06.2008 06:58
Ну посмотрите повыше.
Там листинги обоих ошибок (binutils & gcc-config), make.conf, emerge --info

Посмотрите что у вас происходит в /usr/i686-pc-linux-gnu - т.е. живы ли все линки. И поиграйтесь с eselect binutils
Спасибо сказали:
Аватара пользователя
razum
Сообщения: 189
ОС: Gentoo 64
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение razum »

Ссылки живы

Код: Выделить всё

# eselect binutils list
Installed binutils for target i686-pc-linux-gnu
  [1]   2.18 *
Спасибо сказали:
ivanich
Сообщения: 72
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение ivanich »

razum писал(а):
25.06.2008 16:45
Ссылки живы

Код: Выделить всё

# eselect binutils list
Installed binutils for target i686-pc-linux-gnu
  [1]   2.18 *

Попробуйте еще раз пересобрать gcc и glibc, и на всякий случай уберите флаг -mmx. И кстати есть куча тем на forums.gentoo.org с аналогичной проблемой.
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение sspphheerraa »

Nikoli писал(а):
20.06.2008 17:10
Исходя из http://bugs.gentoo.org/show_bug.cgi?id=198121 большая часть неприятностей с новой веткой gcc уже решена, предлагаю в этой теме обсуждать встретившиеся из оставшихся.

Не стоит забывать, что Changelog идет для пакета как такового, и не ссылается на используемый профиль.
Для Hardened все еще висит маска:

# Mask off gcc-4 for all hardened arches until SSP is sorted out (i.e.
# backport for gcc-4.0 and 4.0/4.1 rigged for SSP support in the C
# library). After that, may still need to be masked on x86 as some
# PIC assembler that worked pre-4 fails post-4, e.g. bug #104966).
# If you want to play with it, unmask in /etc/portage/package.unmask
# but be prepared to rebuild anything you build with gcc-4, later.
# 2006-01-11 kevquinn
=sys-devel/gcc-4*
Sspphheerraa
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Hardened Gentoo на основе GCC 4.3

Сообщение sspphheerraa »

Кроме того, в процессе сборки можно увидеть:

* updating configuration to build hardened GCC
* hardened is not supported for this arch in this gcc version


так что hardened на gcc-4* не более чем fake... :sleep:
Sspphheerraa
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo
Контактная информация:

Re: Hardened Gentoo на основе GCC 4.3

Сообщение Nikoli »

sspphheerraa писал(а):
22.07.2008 19:39
Кроме того, в процессе сборки можно увидеть:

* updating configuration to build hardened GCC
* hardened is not supported for this arch in this gcc version

так что hardened на gcc-4* не более чем fake... sleep.gif


Действительно такое предупреждение появляется. Я воспринимаю его как "Официально мы не берёмся утверждать, что такая версия gcc заработает на такой архитектуре. Что ваша система не будет работать, мы тоже не утверждаем."

Я не думаю, что разработчики добавили use flag hardened шутки ради или по ошибки. Я собрал hardened Gentoo на основе gcc 4.3 и sys-kernel/hardened-sources, которая вполне работает и обладает дополнительной защитой.

Если загрузится с ядром из hardened-sources, в котором включены все защиты, то система не будет работать, если она собрана без поддержки этой защиты.
Я знаю два способа проверить наличие включённой защиты:

1)

Код: Выделить всё

paxtest blackhat
PaXtest - Copyright(c) 2003,2004 by Peter Busser <peter@adamantix.org>
Released under the GNU Public Licence version 2 or later

Writing output to paxtest.log
It may take a while for the tests to complete
Test results:
PaXtest - Copyright(c) 2003,2004 by Peter Busser <peter@adamantix.org>
Released under the GNU Public Licence version 2 or later

Mode: blackhat


Executable anonymous mapping             : Killed
Executable bss                           : Killed
Executable data                          : Killed
Executable heap                          : Killed
Executable stack                         : Killed
Executable anonymous mapping (mprotect)  : Killed
Executable bss (mprotect)                : Killed
Executable data (mprotect)               : Killed
Executable heap (mprotect)               : Killed
Executable stack (mprotect)              : Killed
Executable shared library bss (mprotect) : Killed
Executable shared library data (mprotect): Killed
Writable text segments                   : Killed
Anonymous mapping randomisation test     : 33 bits (guessed)
Heap randomisation test (ET_EXEC)        : 13 bits (guessed)
Heap randomisation test (ET_DYN)         : No randomisation
Main executable randomisation (ET_EXEC)  : 33 bits (guessed)
Main executable randomisation (ET_DYN)   : No randomisation
Shared library randomisation test        : 33 bits (guessed)
Stack randomisation test (SEGMEXEC)      : No randomisation
Stack randomisation test (PAGEEXEC)      : 40 bits (guessed)
Return to function (strcpy)              : paxtest: return address contains a NULL byte.
Return to function (memcpy)              : Vulnerable
Return to function (strcpy, RANDEXEC)    : paxtest: return address contains a NULL byte.
Return to function (memcpy, RANDEXEC)    : Vulnerable
Executable shared library bss            : Killed
Executable shared library data           : Killed


2)

Код: Выделить всё

pspax
USER     PID    PAX    MAPS ETYPE      NAME             CAPS ATTR
root     1      PeMRs  w^x  ET_EXEC    init              =


Вы всё ещё считаете, что в portage есть подделки?
Спасибо сказали:
Ответить