From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Alexander Bokovoy To: mandrake-russian@altlinux.ru Subject: Re: [mdk-re] gcc & -march Message-ID: <20010520143533.E17072@boids.avilink.net> Mail-Followup-To: mandrake-russian@altlinux.ru References: <20010520011718.A3245@vezyolka.dgap.mipt.ru> <20010520015407.0b5e17d7.bga@kgok.murmansk.su> <20010520132346.B17072@boids.avilink.net> <20010520145038.A22467@vezyolka.dgap.mipt.ru> <20010520141953.D17072@boids.avilink.net> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <20010520141953.D17072@boids.avilink.net>; from ab@avilink.net on Sun, May 20, 2001 at 02:19:55PM +0300 Sender: mandrake-russian-admin@altlinux.ru Errors-To: mandrake-russian-admin@altlinux.ru X-BeenThere: mandrake-russian@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: Linux-Mandrake RE / ALT Linux discussion list List-Unsubscribe: , List-Archive: Date: Sun May 20 15:30:01 2001 X-Original-Date: Sun, 20 May 2001 14:35:33 +0300 Archived-At: List-Archive: List-Post: On Sun, May 20, 2001 at 02:19:55PM +0300, Alexander Bokovoy wrote: > On Sun, May 20, 2001 at 02:50:38PM +0400, Yura Zotov wrote: > > On Sun, May 20, 2001 at 01:23:46PM +0300, Alexander Bokovoy wrote: > > > On Sun, May 20, 2001 at 01:54:07AM +0400, Баталов Григорий wrote: > > > > On Sun, 20 May 2001 01:17:18 +0400 > > > > Yura Zotov wrote: > > > > > > > > > Скажите, пожалуйста, а как gcc узнает, под какую архитектуру делать > > > > > объектники, если не задан явно параметр -march? Под какой процессор он при > > > > > этом генерит код? > > > > > > > > Неужели под ту, которая в $HOSTTYPE? :) > > > Нет. Если не указана явно архитектура, то на ia32 генерируется код, > > > который гарантированно будет работать с i386. Даже если Вы укажете > > > -mcpu=i686, но не укажете -march=i686, то все равно код сгенерируется > > > только такой, который можно выполнить на i386, хотя вызовы и распределение > > > переменных по регистрам будут оптимизированы под i686. > > > > > > Аналогично и для других архитектур -- по умолчанию код генерируется так, > > > чтобы работать на самой слабой машине в серии. > > > > Я тут взял и попробовал скомпилировать ОЧЕНЬ простую программу для разных > > -march=i386|i486|i586|i686|athlon и без явного указания -march. Получилось > > 6 *.o по ~1.3K, причем 5 из них были по размеру одинаковы и при беглом взгляде > > внутрь тоже. Отличался от всех только полученный с -march=i386. > > В чем прикол? > Попробуйте приложенный тест -- это реализация алгоритма MD5, достаточно > затратная с точки зрения вычислений. В архиве есть уже скомпилированные > ассемблерные фрагменты и исходный md5.c. Получить ассемблерный код для > конкретной архитектуры можно, пользуясь скриптом maketest. > > Обратите внимание, например, на md5-i386.s и md5-pentiumpro.s. Проще всего > сравнить через diff -u md5-i386.s md5-pentiumpro.s > > Одинаковый код, кстати, не получился ни в одном из случаев. ... кроме случая i686 и pentiumpro :-) поскольку это одно и тоже Чтобы усилить эффект, добавьте в maketest оптимизацию -O6. -- Sincerely yours, Alexander Bokovoy The Midgard Project | ALT Linux Team | Minsk Linux Users Group www.midgard-project.org | www.altlinux.ru | www.minsk-lug.net -- You won't skid if you stay in a rut. -- Frank Hubbard