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: <20010520141953.D17072@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> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="ReaqsoxgOBHFXBhH" Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <20010520145038.A22467@vezyolka.dgap.mipt.ru>; from yznews@hotbox.ru on Sun, May 20, 2001 at 02:50:38PM +0400 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:16:01 2001 X-Original-Date: Sun, 20 May 2001 14:19:55 +0300 Archived-At: List-Archive: List-Post: --ReaqsoxgOBHFXBhH Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit 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 Одинаковый код, кстати, не получился ни в одном из случаев. -- 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 --ReaqsoxgOBHFXBhH Content-Type: application/octet-stream Content-Disposition: attachment; filename="test-arch.tar.bz2" Content-Transfer-Encoding: base64 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 RQ52SST/xdyRThQkAhCl6sA= --ReaqsoxgOBHFXBhH--