1 |
Hallo Martin, |
2 |
|
3 |
Am Tue, 3 Jan 2017 07:51:04 +0100 schrieb Martin Wohlert |
4 |
<martin@××××××××××××.de>: |
5 |
> Am 02.01.2017 um 22:41 schrieb Uwe Scholz: |
6 |
> > Weiß jemand, was passiert, wenn man bei den CFLAGS das march-Flag |
7 |
> > einfach weg lässt? Wird das dann automatisch auf das |
8 |
> > prozessorspezifische Flag gesetzt - in meinem Fall auf |
9 |
> > "sandybridge"? |
10 |
> |
11 |
> Wenn du das -march Flag weglässt, dann erzeugt der Compile einfache |
12 |
> binaries ohne derartige Instruktionen, sodass die binaries theoretisch |
13 |
> auf allen Prozessoren (gleicher Architektur) lauffähig sind. Es gibt |
14 |
> natürlich auch Programme, bei denen im Quelltext selbst noch |
15 |
> Inline-Assembler eingebaut ist, wo derartige Instruktionen einhalten |
16 |
> sein können. Dort findet aber in der Regel im Programmcode auch eine |
17 |
> Prüfung der CPU statt bevor derartige Befehle genutzt werden. |
18 |
> |
19 |
> Anstatt des -march Flag kannst du auch das -mtune Flag verwenden, |
20 |
> damit bleiben deine binaries auch auf andere Prozessoren lauffähig, |
21 |
> können aber optimierten Code für speziell deine CPU enthalten. Die |
22 |
> binaries sind dadurch natürlich etwas größer. |
23 |
> |
24 |
> LG |
25 |
> Martin |
26 |
|
27 |
Vielen Dank für die tolle Erklärung. Das war mir so noch nicht bewusst. |
28 |
|
29 |
Mit -mtune=sandybridge hat es jetzt auch geklappt. Dann lass' ich das |
30 |
jetzt so. |
31 |
|
32 |
Viele Grüße, |
33 |
Uwe |