[sisyphus] qmake, target i586

Alexey Lubimov =?iso-8859-1?q?avl_=CE=C1_l14=2Eru?=
Пн Июл 26 01:01:06 MSD 2004


Alex wrote:

> Sergey Vlasov пишет:
>
>> On Sat, Jul 24, 2004 at 11:18:40PM +0600, Alex wrote:
>>  
>>
>>> Есть проект, накоденый с использованием Qt (не KDElibs). configure 
>>> не используется, Makefile строится qmake'ом. Как в данном случае 
>>> правильно собрать пакет под i586? При вызове rpm -bb --target i586 
>>> имя_проекта.spec создаётся файл имя_проекта.i586.rpm, но я же вижу, 
>>> что компилятору указывалось -mcpu=i686! Архитектура определилась 
>>> qmake'ом, а опция target была игнорирована. Или configure должен 
>>> ОБЯЗАТЕЛЬНО присутствовать и обрабатывать опции?
>>>   
>>
>>
>> Вот стандартные опции:
>>
>> $ grep '^%optflags\>' /usr/lib/rpm/i586-alt-linux/macros
>> %optflags               %optflags_default -march=i586 -mcpu=i686
>>
>> Опция -march=... устанавливает ограничения на использование команд
>> (определяет самый старый процессор, на котором запустится
>> скомпилированная программа).  Опция -mcpu=... определяет, под какой
>> процессор оптимизируется код, но не влияет на разрешённый набор
>> команд.  Т.е., в данном случае результат компиляции будет работать на
>> i586, но при оптимизации будет отдаваться предпочтение более
>> эффективной работе на i686.
>>  
>>
>>  
>>
> Спасибо!
> P.S.
> Если не задавать target вообще, то результат одентичен target i586 ( 
> то есть компилеру передаётся -march=i586 -mcpu=i686 (это сгенерил 
> qmake) ).
>
задание опции target дает два эффекта.
1) rpm учитывает архитектуру и не даст поставить на i386 пакет i586
2) при сборке RPM заполняет переменные архитектуро зависимыми опциями 
RPM_OPT_FLAGS и RPM_CFGAGS*  которые можно использовать в спеке.





Подробная информация о списке рассылки Sisyphus