LINUX.ORG.RU
ФорумTalks

[gentoo][calculate linux][история успеха] qt-gui-4.7.2

 ,


0

1

Как вы собрали свой qt-gui-4.7.2?

Постоянно огребаю багу с ssse3 (мне его не впаяли в проц, в опциях указано -mno-ssse3). В багтрекерах тоже багу запилили, но с отсылкой на libX11.

Срез портов и оверлеев сегодняшний.

В общем, нужна помощь! А то систему обновить не могу(

Дело в калькуляторе.

Zhbert ★★★★★
()

>огребаю багу с ssse3 (мне его не впаяли в проц, в опциях указано -mno-ssse3)

спрашивается, не ссзб ли?

qt использует ассемблерные вставки, работающие через cpuid ,
а вы их запретили -mno-ssse3, что и приводит к ошибкам сборки,
не надо использовать -mno-* опции, если не знаете к чему это приведет.

уберите ssse3 из USE флагов, этого достаточно. ssse3 вставки будут собираться все равно, но работать на вашем АМД (угадала?) не будут, будет работать другой альтернативный код.

// зачем в talks?

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

sylvia@allure:~$ analyze-x86 /usr/lib/qt4/libQtGui.so.4.7
instructions:
cpuid: 0 nop: 17282 call: 187657 count: 1829097
i486: 3
i686: 4840
mmx: 6845
3dnow!: 77
sse: 634
sse2: 49891
sse3: 3
ssse3: 14
sylvia@allure:~$ cat /proc/cpuinfo |grep -e «model name» -e flags
model name : Intel(R) Celeron(R) M processor 1.70GHz
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx bts


вопросы будут ? есть и sse3 и ssse3 в коде, и работает все на Celeron M , на котором в наличии только SSE2, не выпадая ни в какие Illegal Instruction.

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

и 3dnow! кстати есть....

которого на Селероне нет

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

Ноут на коре - кощунство, типа, 7" нетбука с ксеоном.

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

Выражаю своё почтение и восхищение Вами и поздравляю с 8 Марта.

Вы были правы.

P.S. Мне кажется, что причина не столько во флаге (ибо поставлен осознанно и разумно), а в том, что qt их не проверяет (или ebuild).

DarkAmateur ★★★★
() автор топика

у меня стоит 4:4.7.2-0ubuntu2, лично я его не ставил, наверно с зависимостями пришло.

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

-mno-sse* запрещает использование соответствующих SSE через xmmintrin.h

вообщем жесткий запрет не надо делать, особенно для мультимедиа приложений, qt-gui к ним тоже относится (asm вставки для растеризации графики, 3DNow, SSE2,3,SSSE3, AVX вроде даже должен быть, если дефайнится -DHAVE_AVX)

вообщем если не хотите SSSE3 , которого на АМД нет, то не надо делать -mssse3 , но и -mno-ssse3 тоже не нужно, т.к, будут ошибки с вставками,
о вставках обычно заботится переключалка через cpuid, которая будет на вашем процессоре выбирать самый эффективный код, т.е. если АМД и нет SSSE3, то будет вероятно использован 3DNow! вариант тех же функций,
если хочется покопаться в коде (компактном) с разными вариантами - возьмите liboil, она небольшая и там это активно используется.

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

-mavx

до кучи можно накидать

-mpclmul (westmere)
-maes (westmere)
-mpopcnt (nehalem)
-mabm (для 4.5) westmere
-mfma (для 4.6) sandybridge
-mxop (последнее скорее для АМД бульдозер? хотя я не уверена)

и еще вот такой вот ключик

-msse2avx (кодировать SSE инструкции с префиксом AVX)

по поводу того что из всего этого получится, я не скажу, у меня Penryn пока, без всего этого.

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

-mavx добавили в 4.4

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

GCC 4.6 кстати в фазе перехода к релиз кандидату, я уже две недели его использую основным, все относительно прилично, глючит mplayer (звук свистит в некоторых роликах), ну и достаточно нестабильно собирается с -Ofast -O3

с -O2 все более менее хорошо, включая даже glibc


снапшоты старше чем от 19 февраля брать не советую, у меня сейчас этот gcc-4.6-20110305



Sylvia ★★★★★
()

Вот оно, истинное лицо генты! Вместо того чтобы за пять минут поставить что-то из пакета, гентушники часами компилят, а потом обнаруживают epic fail из-за неправильно указанного ключа.

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

Если изначально понять назначение флага, который используешь, то проблем никаких никогд ане будет. И компиляция идет не часами.

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

>Вместо того чтобы за пять минут поставить что-то из пакета

...а потом часами пытаться понять, из-за чего оно упало...

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

> Если изначально понять назначение флага, который используешь, то проблем никаких никогд ане будет. И компиляция идет не часами.

Но зачем, зачем эти лишние усилия?

drull ★☆☆☆
()

это же calculate, зачем qt-gui то собирать? бинарно ведь обновляется

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

>Вот оно, истинное лицо генты! Вместо того чтобы за пять минут поставить что-то из пакета, гентушники часами компилят, а потом обнаруживают epic fail из-за неправильно указанного ключа.
во-первых, это не гента,
во-вторых - 4.2

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

В какой то степени я с Вами согласен. Не все это нужно. Иногда полезно, например оптимизировать под конкретную архитектуру и выкинуть те или иные ненужные части приложения.

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

вот именно, зачем лишние усилия, когда можно несколько раз щёлкнуть «Далее» и поставить любую программу любой версии в любой каталог?

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

>Вместо того чтобы за пять минут поставить что-то из пакета

ох я щаз припомню пакеты postfix, собранные мейнтейнерами какого-то древнего Red Hat(какого хоть убей не вспомню) без поддержки MySQL...

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

>-msse2avx
оно вроде включается при использовании -mavx само!?

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