From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <41041F92.7040701@l14.ru> Date: Mon, 26 Jul 2004 01:01:06 +0400 From: Alexey Lubimov User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: ru, en MIME-Version: 1.0 To: ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] qmake, target i586 References: <410299F0.6040506@mail.ru> <20040724181036.GA3122@sirius.home> <4103BCEA.50103@mail.ru> In-Reply-To: <4103BCEA.50103@mail.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Jul 2004 21:01:07 -0000 Archived-At: List-Archive: 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* которые можно использовать в спеке.