Gentoo Archives: gentoo-user-de

From: Martin Wohlert <martin@××××××××××××.de>
To: gentoo-user-de@l.g.o
Subject: Re: [gentoo-user-de] Teilweise gelöst Was: Re: Update-Problem bei coreutils >= 8.25
Date: Tue, 03 Jan 2017 06:51:09
Message-Id: bcc84545-9878-13d5-e620-62c2f409f9b6@b-root-force.de
In Reply to: [gentoo-user-de] Teilweise gelöst Was: Re: Update-Problem bei coreutils >= 8.25 by Uwe Scholz
1 Am 02.01.2017 um 22:41 schrieb Uwe Scholz:
2 > Weiß jemand, was passiert, wenn man bei den CFLAGS das march-Flag
3 > einfach weg lässt? Wird das dann automatisch auf das
4 > prozessorspezifische Flag gesetzt - in meinem Fall auf "sandybridge"?
5
6 Hallo Uwe!
7
8 Das -march Flag sorgt dafür, dass der Compiler binaries erzeugt, die
9 prozessorspezifische Instruktionen beinhalten können, die dann nur auf
10 Prozessoren laufen, die diese Instruktionen kennen. Z.B. sowas wie SSE4
11 Befehle.
12
13 Auf allen Prozessoren, die dann SSE4 unterstützen, würde das binary
14 laufen, aber halt nicht auf Prozessoren, die kein SSE4 kennen.
15
16 Wenn du das -march Flag weglässt, dann erzeugt der Compile einfache
17 binaries ohne derartige Instruktionen, sodass die binaries theoretisch
18 auf allen Prozessoren (gleicher Architektur) lauffähig sind. Es gibt
19 natürlich auch Programme, bei denen im Quelltext selbst noch
20 Inline-Assembler eingebaut ist, wo derartige Instruktionen einhalten
21 sein können. Dort findet aber in der Regel im Programmcode auch eine
22 Prüfung der CPU statt bevor derartige Befehle genutzt werden.
23
24 Anstatt des -march Flag kannst du auch das -mtune Flag verwenden, damit
25 bleiben deine binaries auch auf andere Prozessoren lauffähig, können
26 aber optimierten Code für speziell deine CPU enthalten. Die binaries
27 sind dadurch natürlich etwas größer.
28
29 LG
30 Martin

Replies