Re: Teilweise gelöst Was: Re: Updat e-Problem bei coreutils >= 8.25
Martin Wohlert <[email protected]> Tue, 3 Jan 2017 07:51:04 +0100
| Newsgroups | gmane.linux.gentoo.user.german |
|---|---|
| Message-ID | <[email protected]> |
Am 02.01.2017 um 22:41 schrieb Uwe Scholz: > Weiß jemand, was passiert, wenn man bei den CFLAGS das march-Flag > einfach weg lässt? Wird das dann automatisch auf das > prozessorspezifische Flag gesetzt - in meinem Fall auf "sandybridge"? Hallo Uwe! Das -march Flag sorgt dafür, dass der Compiler binaries erzeugt, die prozessorspezifische Instruktionen beinhalten können, die dann nur auf Prozessoren laufen, die diese Instruktionen kennen. Z.B. sowas wie SSE4 Befehle. Auf allen Prozessoren, die dann SSE4 unterstützen, würde das binary laufen, aber halt nicht auf Prozessoren, die kein SSE4 kennen. Wenn du das -march Flag weglässt, dann erzeugt der Compile einfache binaries ohne derartige Instruktionen, sodass die binaries theoretisch auf allen Prozessoren (gleicher Architektur) lauffähig sind. Es gibt natürlich auch Programme, bei denen im Quelltext selbst noch Inline-Assembler eingebaut ist, wo derartige Instruktionen einhalten sein können. Dort findet aber in der Regel im Programmcode auch eine Prüfung der CPU statt bevor derartige Befehle genutzt werden. Anstatt des -march Flag kannst du auch das -mtune Flag verwenden, damit bleiben deine binaries auch auf andere Prozessoren lauffähig, können aber optimierten Code für speziell deine CPU enthalten. Die binaries sind dadurch natürlich etwas größer. LG Martin