понедельник, 23 ноября 2009 г.

Как обновить gcc

Обновлять gcc нужно хотя бы по двум причинам: первое - в gcc бывают ошибки, второе - перекомпиляция старых программ новым компилятором может дать выигрыш в оптимизации программ, которыми пользуемся.

Ничего сложного в этом нету. Просто поэтапно нужно сделать:
# emerge -uva gcc# gcc-config x86_64-pc-linux-gnu-4.4.2 

(вместо x86_64-pc-linux-gnu-4.4.2 ставится своя версия gcc. список доступных gcc можно получить командой gcc-config -l)

Потом:
# source /etc/profile# emerge --oneshot -av libtool

Теперь можно пересобрать систему новым компилятором. Перед этим нужно пересобрать набор программ для компиляции:
# emerge -eav system

А теперь пересоберем мир:
# emerge -eav world

После вышеописанных процедур можно удалить старый gcc:
# emerge -C gcc-x.x

Вместо gcc-x.x пишется старая версия gcc

среда, 11 ноября 2009 г.

Не собирается xorg-server-1.7.1

При обновлении xorg-server-1.7.1 получил ошибку:
rensize.c: В функции ‘__glXImageSize’:
rensize.c:222: ошибка: ‘GL_DEPTH_STENCIL_MESA’ не описан (первое использование в этой функции)
rensize.c:222: ошибка: (Сообщение о неописанном идентификаторе выдается один раз
rensize.c:222: ошибка: для каждой функции, в которой он используется.)
rensize.c:261: ошибка: ‘GL_UNSIGNED_SHORT_15_1_MESA’ не описан (первое использование в этой функции)
rensize.c:262: ошибка: ‘GL_UNSIGNED_SHORT_1_15_REV_MESA’ не описан (первое использование в этой функции)
rensize.c:276: ошибка: ‘GL_UNSIGNED_INT_24_8_MESA’ не описан (первое использование в этой функции)
rensize.c:277: ошибка: ‘GL_UNSIGNED_INT_8_24_REV_MESA’ не описан (первое использование в этой функции)
make[1]: *** [rensize.lo] Ошибка 1
make[1]: *** Ожидание завершения заданий...
make: *** [all-recursive] Ошибка 1
 * ERROR: x11-base/xorg-server-1.7.1 failed:
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line   49:  Called src_compile
 *   environment, line 3743:  Called x-modular_src_compile
 *   environment, line 4667:  Called x-modular_src_make
 *   environment, line 4706:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =x11-base/xorg-server-1.7.1',
 * the complete build log and the output of 'emerge -pqv =x11-base/xorg-server-1.7.1'.
 * The complete build log is located at '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/build.log'.
 * The ebuild environment file is located at '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/environment'.
 * S: '/home/tmp2/portage/x11-base/xorg-server-1.7.1/work/xorg-server-1.7.1'

>>> Failed to emerge x11-base/xorg-server-1.7.1, Log file:

>>>  '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/build.log'

Здесь нужно сообщить X.org, чтобы тот пользовался xorg-x11:
# eselect opengl set xorg-x11
Собрать xorg-server. Потом вернуть как было.