1 (27.03.2014 22:23:06 отредактировано andreil)

Поставил на ночь сборку мира на новой машинке и сейчас увидел, что на одном и пакетов сборка вылетела на этапе конфигурации:

 Консоль:
/var/tmp/portage/app-arch/xz-utils-5.0.5-r1/work/xz-5.0.5/configure --prefix=/usr --build=armv7a-hardfloat-linux-gnueabi --host=armv7a-hardfloat-linux-gnueabi --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib --disable-dependency-tracking --enable-nls --enable-threads --disable-static
/var/tmp/portage/app-arch/xz-utils-5.0.5-r1/work/xz-5.0.5/configure: line 1003: 19027 Segmentation fault      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" > /dev/null
/var/tmp/portage/app-arch/xz-utils-5.0.5-r1/work/xz-5.0.5/configure: line 1003: 19032 Segmentation fault      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" > /dev/null
/var/tmp/portage/app-arch/xz-utils-5.0.5-r1/work/xz-5.0.5/configure: line 1003: 19037 Segmentation fault      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" > /dev/null
/var/tmp/portage/app-arch/xz-utils-5.0.5-r1/work/xz-5.0.5/configure: line 1003: 19042 Segmentation fault      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" > /dev/null
configure: WARNING: unrecognized options: --disable-, --enable-, --enable-, --disable-
configure: error: expected an absolute directory name for --datadir:

Перед этим пакетом еще около 70 собралось нормально be
Параметры компиляции:

CFLAGS="-O3 -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -ftree-vectorize -mfloat-abi=hard -funsafe-math-optimizations -funroll-loops -funsafe-math-optimizations"
USE="bindist embedded gles gles1 gles2 gpm neon samba sunxi_board_cubieboard truetype X 
     -opengl egl vdpau -qt4 -cups png"

Пробовал вводить данную команду вручную - результат прежний...

2

andreil пишет:

Поставил на ночь сборку мира на новой машинке и сейчас увидел, что на одном и пакетов сборка вылетела на этапе конфигурации:

памяти хватает? memtest проводили?

Если с железом всё в порядке, проверьте число потоков, нужно на 1 меньше числа ядер(если больше, возможны проблемы).

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

3

Памяти на машинке - 1Гб. Из них во время самой жесткой сборки была занята едва половина.
memtest - все чисто.
Число потоков - 1. Не менял, ибо одноядерник. Сборка так же в 1 поток.

4

andreil пишет:

Памяти на машинке - 1Гб.

это мало.

andreil пишет:

Из них во время самой жесткой сборки была занята едва половина.

это вам показалось.

andreil пишет:

memtest - все чисто.
Число потоков - 1. Не менял, ибо одноядерник. Сборка так же в 1 поток.

наверное памяти просто не хватило для одного из тестов в configure.

Вы точно уверенны, что оно вам надо? Ну xz вы может ещё и соберёте, но ничего иксового вам не видать как своих ушей(с 1Гб). Да и xz вы будете собирать до морковкиного заговенья с таким-то железом...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

5 (16.03.2014 11:34:16 отредактировано andreil)

drBatty пишет:

это мало.

Эмммм... Это ARM-based машинка. Там проц всего 1ГГц и памяти либо 1Гб, либо 2Гб (в двухъядерном исполнении). Уже собирал полностью до DE - всегда хватало. Пиковое потребление памяти - примерно 400Мб при сборке Mesa).
Повторюсь - УЖЕ собиралось всё ранее. Поменялись только CFLAGS (добавил опций после -mfloat-abi=hard)

6

andreil пишет:

Поменялись только CFLAGS (добавил опций после -mfloat-abi=hard)

а. так бы сразу и сказали.

Ну вот в ./configure есть куча тестов. В частности и для mfloat-abi=hard (если оно надо).

-mfloat-abi=name
    Specifies which floating-point ABI to use. Permissible values are: `soft', `softfp' and `hard'.

    Specifying `soft' causes GCC to generate output containing library calls for floating-point operations. `softfp' allows the generation of code using hardware floating-point instructions, but still uses the soft-float calling conventions. `hard' allows generation of floating-point instructions and uses FPU-specific calling conventions.

    Using -mfloat-abi=hard with VFP coprocessors is not supported. Use -mfloat-abi=softfp with the appropriate -mfpu option to allow the compiler to generate code that makes use of the hardware floating-point capabilities for these CPUs.

    The default depends on the specific target configuration. Note that the hard-float and soft-float ABIs are not link-compatible; you must compile your entire program with the same ABI, and link with a compatible set of libraries.

ну вот у вас этот тест НЕ прошёл. Наверное вывод очевиден: меняйте обратно.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

mfloat-abi=hard поддерживается, ибо архитерктура arm7a-hardfp:

Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls

Вопрос в том, что после данной опции...
Сейчас попробую удалить "хвост" опций и запущу пересборку с 0 (ест, кроме компилятора)...

8 (16.03.2014 11:59:33 отредактировано Silencer)

andreil пишет:

Число потоков - 1. Не менял, ибо одноядерник. Сборка так же в 1 поток.

С помощью MAKEOPTS определяется, сколько параллельных процессов компиляции можно запускать при установке пакета. Хорошим вариантом (но не всегда оптимальным) является значение, равное количеству процессоров (или ядер) в системе плюс один.

значит быть тебе с

# echo "MAKEOPTS="-j2"" >> /etc/portage/make.conf 

Но я не уверен, что дело в этом...

9

 Консоль:

localhost ~ # emerge -pv app-arch/xz-utils

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

Calculating dependencies... done!
[ebuild   R    ] app-arch/xz-utils-5.0.5-r1  USE="nls threads -static-libs" 1,276 kB

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


УМВР

10

Silencer пишет:

значит быть тебе с

зачем ему j2 на одноядерном?

andreil пишет:

mfloat-abi=hard поддерживается

а. После. Так и пишите.

И да, unsafe перевод нужен?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

11

drBatty пишет:

зачем ему j2 на одноядерном?

Спроси у хендбука

12

Silencer пишет:

значит быть тебе с

# echo "MAKEOPTS="-j2"" >> /etc/portage/make.conf 

Но я не уверен, что дело в этом...

У меня там 1 (значение по умолчанию, ибо данный параметр не задан.

drBatty пишет:

И да, unsafe перевод нужен?

Судя по тестам - позволяет выиграть в производительности на данном камне. Тесты были для Аllwinner20, а у меня А10 - то же самое но с 1 ядром.

Убрал опции после "mfloat-abi=hard". Явно ошибка в сборке конфигуратора:

 Консоль:
>>> Emerging (7 of 224) sys-devel/patch-2.6.1
* patch-2.6.1.tar.bz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                            [ ok ]
>>> Unpacking source...
>>> Unpacking patch-2.6.1.tar.bz2 to /var/tmp/portage/sys-devel/patch-2.6.1/work
>>> Source unpacked in /var/tmp/portage/sys-devel/patch-2.6.1/work
>>> Compiling source in /var/tmp/portage/sys-devel/patch-2.6.1/work/patch-2.6.1 ...
* econf: updating patch-2.6.1/config.guess with /usr/share/gnuconfig/config.guess
* econf: updating patch-2.6.1/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --build=armv7a-hardfloat-linux-gnueabi --host=armv7a-hardfloat-linux-gnueabi --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib
configure: error: expected an absolute directory name for --datadir:

В предыдущий раз данный пакет собрался без проблем...

13

выполни синхронизацию

# eix-sync

14

Silencer пишет:

выполни синхронизацию

# eix-sync

МБ emerge --sync?
eix пока вообще не стоит.

15

Silencer пишет:

Спроси у хендбука

читать надо не хэндбук, а man make. А в рукокниге кратенько сказано, без деталей. Ещё и голову необходимо включить.

-j [jobs], --jobs[=jobs]
            Specifies  the  number of jobs (commands) to run simultaneously.  If there is more than
            one -j option, the last one is effective.  If the -j option is given without  an  argu‐
            ment, make will not limit the number of jobs that can run simultaneously.

andreil пишет:

позволяет выиграть в производительности на данном камне.

да. Если будет работать. А вот у вас конкретно на xz не работает. Бывает. Я вам больше скажу, конкретно для xz это всё равно НЕ даст профита. Там производительность упирается в шину памяти, а не в какие-то инструкции, тем более в математику (математика там не сложнее a+b).

andreil пишет:

В предыдущий раз данный пакет собрался без проблем...

может make clean поможет? Похоже вы пытаетесь ещё раз патч наложить.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

16

andreil пишет:

МБ emerge --sync?

тогда уж лучше

# emerge webrsync
drBatty пишет:

читать надо не хэндбук

ну да, конечно...

17 (16.03.2014 12:43:50 отредактировано andreil)

drBatty пишет:

может make clean поможет? Похоже вы пытаетесь ещё раз патч наложить.

При установке через emerge папка сборки автоматом удаляется перед распаковкой исходников. Так что каждая попытка не накатывается поверх предыдущих попыток...

PS: Эх, попытаюсь с 0. Благо, кроме компилятора и glibc пока ничего основательного не собиралось...

18

Silencer,

drBatty пишет:

голову необходимо включить.

перед тем, как спорить, подумайте. Что это за j, и зачем оно нужно.

А я с вами спорить и не буду.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

19

drBatty пишет:

с вами

можно на ты

20

andreil пишет:

При установке через emerge папка сборки автоматом удаляется перед распаковкой исходников. Так что каждая попытка не накатывается поверх предыдущих попыток...

дело не только в "папке" сборки. Ну вам виднее, мне лениво генту ставить.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

21

drBatty пишет:

дело не только в "папке" сборки. Ну вам виднее, мне лениво генту ставить.

Я к тому, что "make clean" бесполезен, ибо папка, в которой производилась сборка, перед установкой пакета удаляется.

22

Silencer, с тобой лично тоже не хочу спорить. Смысл, если ты ВЕРУЕШЬ в свою рукокнигу? И она для тебя даже ценнее, чем документация от разработчиков этой самой make.

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

и да

If the `-j' option is followed by an integer, this is the number of
recipes to execute at once; this is called the number of "job slots".
If there is nothing looking like an integer after the `-j' option,
there is no limit on the number of job slots.  The default number of job
slots is one, which means serial execution (one thing at a time).

   One unpleasant consequence of running several recipes simultaneously
is that output generated by the recipes appears whenever each recipe
sends it, so messages from different recipes may be interspersed.

   Another problem is that two processes cannot both take input from the
same device; so to make sure that only one recipe tries to take input
from the terminal at once, `make' will invalidate the standard input
streams of all but one running recipe.  This means that attempting to
read from standard input will usually be a fatal error (a `Broken pipe'
signal) for most child processes if there are several. 

   It is unpredictable which recipe will have a valid standard input
stream (which will come from the terminal, or wherever you redirect the
standard input of `make').  The first recipe run will always get it
first, and the first recipe started after that one finishes will get it
next, and so on.

RTFM.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

23

andreil пишет:

Я к тому, что "make clean" бесполезен, ибо папка, в которой производилась сборка, перед установкой пакета удаляется.

andreil пишет:

./configure --prefix=/usr --build=armv7a-hardfloat-linux-gnueabi --host=armv7a-hardfloat-linux-gnueabi --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib
configure: error: expected an absolute directory name for --datadir:

что-то вы там напутали в "папках". Не?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

24

drBatty пишет:

что-то вы там напутали в "папках". Не?

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

25 (16.03.2014 13:03:51 отредактировано drBatty)

дык если у вас цель /usr/, то вы так всю свою /usr попортите. Надо было --prefix=/tmp/ или типа того. Это "для проверки". Тогда оно будет собирать В /tmp/.

Кстати, make clean это вообще говоря make-цель, и чего оно делает, известно только разработчику ПО(hz в данном случае). Чистит чего-то.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

26

drBatty пишет:

документация от разработчиков этой самой make

Я к тому, что может все-таки ограничить число одновременных процессов компиляции, ибо

If there is more than one -j option, the last one is effective.  If the -j option is given without an  argument,  make will not limit the number of jobs that can run simultaneously.

без оного ограничения его просто нет.  bn

27

drBatty пишет:

дык если у вас цель /usr/, то вы так всю свою /usr попортите. Надо было --prefix=/tmp/ или типа того. Это "для проверки". Тогда оно будет собирать В /tmp/.

Кстати, make clean это вообще говоря make-цель, и чего оно делает, известно только разработчику ПО(hz в данном случае). Чистит чего-то.

До сборки вообще не дошло дело. Всё стопорилось на ./configure...

PS: Всё, останавливаем флуд. Я пока восстанавливаю базовую систему.

28

drBatty пишет:

Чистит чего-то.

Это вполне себе стандартная цель, чистит дерево исходников от промежуточных результатов компиляции. Часто вместо этого просто удаляют дерево целиком и заново распаковывают. А конечные результаты можно  зачистить при помощи цели "uninstall".

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

29

Silencer, make это программа для разработчиков, а не для гентушников. Без j AFAIK там вообще никакой многозадачности нет, т.к. она не нужна. Обычно собирают не всё, а только некоторые файлы в программе. Вот как раз make этим и рулит. Но нет никакого смысла собирать зависимые файлы(не все) в несколько потоков. Их надо строго по очереди собирать, в определённом порядке.

И лишь в релизе есть смысл собирать СРАЗУ несколько файлов, и для этого в make и встроены ключи -j, -l. Без них make работает последовательно, что-бы меньше было глюков.

А в рукокниге наверное опечатка, + с минусом перепутали. У вас ведь гента, попробуйте разные варианты -j, как быстрее. Ещё учтите, что не все любят смотреть на сборку мира, некоторым ещё и работать надо при этом.  bx

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

30

yars пишет:

Это вполне себе стандартная цель, чистит дерево исходников от промежуточных результатов компиляции. Часто вместо этого просто удаляют дерево целиком и заново распаковывают. А конечные результаты можно  зачистить при помощи цели "uninstall".

в теории да.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)