LINUX.ORG.RU

Почему gentoo хочет пересобрать gcc без юза multislot?

 


0

1

Собственно, суть:

root @ saturn [/home/yura] 01:03
>> emerge -auvDN world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-devel/gcc-4.7.3-r1:4.7 [4.7.3-r1:4.7.3] USE="cxx fortran mudflap (multilib) nls nptl openmp (-altivec) -awt -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) (-multislot*) -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No] n

Quitting.

Разумеется, в /etc/portage/package.use у gcc как был юз multislot (уже не помню, зачем), так и остался. Никаких специфических действий я не производил, просто сделал eix-sync в очередной раз.

★★

Последнее исправление: yura_ts (всего исправлений: 1)

Ответ на: комментарий от deterok

Хм, в данный момент есть только одна установленная версия — 4.7.3-r1. При добавлении (теста ради) слота 4.6 в /var/lib/portage/world он снова хочет пересобрать 4.7 без этого юза (!). С чего бы? Лишний раз пересобирать gcc неохота, долго же.

yura_ts ★★
() автор топика
Ответ на: комментарий от daemonpnz

Пока вижу вот это:

root @ saturn [/etc] 01:22
>> stat profile.env
  Файл: «profile.env»
  Размер: 2789      	Блоков: 8          Блок В/В: 4096   обычный файл
Устройство: 801h/2049d	Inode: 918398      Ссылки: 1
Доступ: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ: 2014-06-06 00:29:35.436654624 +0400
Модифицирован: 2014-06-06 00:29:35.436654624 +0400
Изменён: 2014-06-06 00:29:35.436654624 +0400
 Создан: -

Но в этом файле вроде ничего, что бы относилось к юзам gcc

yura_ts ★★
() автор топика
Ответ на: комментарий от yura_ts

Не туда смотришь.
neko@devlaptop17 /usr/portage/profiles $ find . -name '*mask*' -exec grep -Hn 'multislot' {} \;|grep -v '^#'
./base/package.use.mask:10:# Mask multislot USE flag for packages, where it breaks
./base/package.use.mask:13:sys-devel/autoconf multislot
./base/package.use.mask:14:sys-devel/gcc multislot

А вот в чейнжлоге чота пусто на этот счет.

takino ★★★★★
()
Ответ на: комментарий от takino

Хм. Забавно. Я сделал emerge-webrsync и проблема (проблема?) ушла сама собой.

Команда, которую Вы привели, у меня выдает пустоту.

yura_ts ★★
() автор топика
Ответ на: комментарий от yura_ts

Значит что-то проскочило во время обновления, может ты попал в какой-то неудачный момент, а потом чуть позже это пофиксили.

daemonpnz ★★★★★
()

Это моих рук дело. Перебирать необязательно, если у тебя он и так был выключен. Если он был включён и тебе всё равно, что включенный USE=«multislot» в gcc вызывает нарушение целостности кэша portage - размаскируй его в /etc/portage/profile/package.use.mask строчкой вида:

sys-devel/gcc -multislot

и пользуйся дальше на здоровье

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от takino

А вот в чейнжлоге чота пусто на этот счет.

Что?

  05 Jun 2014; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Mask USE='multislot' wrt bugs #507808, #507810 and #507814

Да, тут не указаны пакеты, но grep твой должен выдавать по идее и эту строчку.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от yura_ts

Есть мнение что ты обновился с более старого зеркала. Потому что на sources.gentoo.org текущее состоянии не изменилось - флаг замаскирован у gcc и autoconf

Pinkbyte ★★★★★
()
Ответ на: комментарий от takino

я наблюдаю, обновляюсь ежедневно по крону. Зеркало - яндекс. Обновление я вносил еще вчера днём, так что всё гуд.

Есть мнение что вы с ТС-ом обновились с хренового зеркала.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Большое спасибо за разъянения!

Есть мнение что вы с ТС-ом обновились с хренового зеркала.

sudo cat /etc/portage/make.conf | grep MIRRORS
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/"

Вот что написано в make.conf. Как дОлжно?

yura_ts ★★
() автор топика
Ответ на: комментарий от Pinkbyte

У него же нормальный человеческий мультилиб, это ты со своими задротскими IBM даже не пытаешься вникнуть в проблему.

anonymous
()
21 марта 2016 г.
Ответ на: комментарий от Pinkbyte

Если он был включён и тебе всё равно, что включенный USE=«multislot» в gcc вызывает нарушение целостности кэша portage [...]

А что делать если нужны gcc <4.9 для себя и =4.9 для portage?

Если у меня в gcc-config выбран gcc 4.9 и я включу multislot, может сломаться revdep-rebuild и прочее?

gv
()
Ответ на: комментарий от gv

А что делать если нужны gcc <4.9 для себя и =4.9 для portage?

USE=multislot никак здесь не помешает. Он позволяет ставить в разные слоты версии gcc, относящиеся к одному слоту в случае если флаг не задан. То есть с USE=«multislot» gcc 4.9.1 и gcc 4.9.2(например) будут иметь SLOT=«4.9.1» и SLOT=«4.9.2», а без него обе эти версии будут иметь SLOT=«4.9» и поставить одновременно их не получится.

C gcc 5 пока все версии находятся в одном слоте(почему - хз, скорее всего потому что изменилась политика апстрима насчет версионирования)

Повторюсь - USE=«multislot» не нужен, если ты не занимаешь регресс-тестированием в пределах одной мажорной ветки компилятора.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

А, понял, спасибо.

Повторюсь - USE=«multislot» не нужен, если ты не занимаешь регресс-тестированием в пределах одной мажорной ветки компилятора.

У меня после обновления вот так:

cat /usr/portage/sys-devel/gcc/gcc-4.9.3.ebuild
...
DEPEND="${RDEPEND}
        ...
	!multislot? ( !<${CATEGORY}/gcc-4.9 )

Стоят GCC 4.5.4, 4.7.4, 4.8.5, 4.9.3, 5.3.0 и без multislot возникают блокировки:

[blocks B      ] <sys-devel/gcc-4.9 ("<sys-devel/gcc-4.9" is blocking sys-devel/gcc-4.9.3, sys-devel/gcc-5.3.0)

А с multislot все ок.

gv
()
Ответ на: комментарий от gv

Значит vapier решил дропнуть поддержку старых компиляторов для неопытных пользователей. Ну тогда используй USE=«multislot», ничего не поделаешь

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.