# make.conf optimierung

## flammenflitzer

Hallo

Früher habe ich immer hier nachgesehen:

http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html

allerdings scheint das schon veraltet zu sein.

Kann jemand einen Link für amd64 posten?

----------

## RealGeizt

ich kann dir meine geben wenn du willst.

läuft alles fix und ohne probleme.

```
# These settings were set by the catalyst build script that automatically built this stage

# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-O2 -march=athlon64 -pipe -fomit-frame-pointer -funroll-loops"

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"

USE="3dnow avi dga dvd gtk2 icq java javascript mbox mmx network nvidia \

     openssh svga truetype-fonts type1-fonts X xchatdccserver xchatnogtk \

     xchattext xine"

FEATURES="sandbox"

ACCEPT_KEYWORDS="~amd64"
```

----------

## Macumba

schau dir mal die beiden Links an:

https://forums.gentoo.org/viewtopic.php?t=189250

http://www.ali3nx.info/make.conf

wobei die make.conf aus diesem thread ist.

----------

## Shagrath

http://home.arcor.de/damiensyrax/tmp/make.conf_amd64

Meine fuer x86_64.. ist uebrigens strikt auf KDE ausgelegt. Allerdings glaub ich, dass ich schon ziemlich am Limit fuer kaputten Code bin.

Diese make.conf aus dem Thread erscheint mir irgendwie wertlos. march=tbird bei einem k8 :O?

----------

## Macumba

soll er ja nur angucken,

da sind noch enige andere interessante sachen drin ldflags u.so

----------

## Linuxpeter

Hier mal meine (von AMD) empfehlenen CFLAGS für den Athlon64 und gcc-3.4.x:

```

CFLAGS="-O3 -march=athlon64 -ffast-math -funroll-all-loops -funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -fomit-frame-pointer -pipe"

```

Bisher habe ich damit keine Probleme gehabt.

----------

## Earthwings

Nein, AMD empfiehlt -ffast-math nicht

----------

## RealGeizt

 *Linuxpeter wrote:*   

> Hier mal meine (von AMD) empfehlenen CFLAGS für den Athlon64 und gcc-3.4.x:
> 
> ```
> 
> CFLAGS="-O3 -march=athlon64 -ffast-math -funroll-all-loops -funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -fomit-frame-pointer -pipe"
> ...

 

sieht ziemlich aggressiv aus finde ich...aber wenns läuft  :Smile: 

----------

## Linuxpeter

http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32035.pdf, Seite 29, Kapitel 3.8.3, Table 7

Daher werde ich meine CFLAGS auch erstmal so lassen   :Wink: 

----------

## flammenflitzer

-march=athlon64 ? in dem Dokument ist aber die Rede von -march=k8 ????

----------

## Linuxpeter

k8 = athlon64 = opteron

----------

## flammenflitzer

/etc/make.conf.example

# Decent examples:

#amd64 CPU types supported in gcc-3.4: athlon64, opteron, k8

#CFLAGS="-mtune=k8 -O2 -pipe"

#CFLAGS="-march=athlon64 -O2 -pipe"

Wenn ich das richtig verstehe muß bei Verwendung von k8

CFLAGS="-mtune=k8 -O2 -pipe"

und bei Verwendung von athlon64

CFLAGS="-march=athlon64 -O2 -pipe"

eingetragen werden.

Dann wäre CFLAGS="-march=k8 -O2 -pipe" also falsch? Oder wird hier empfohlen

CFLAGS="-mtune=k8 -O2 -pipe"

CFLAGS="-march=athlon64 -O2 -pipe"

einzutragen?

----------

## c07

 *flammenflitzer wrote:*   

> Dann wäre CFLAGS="-march=k8 -O2 -pipe" also falsch?

 

Nein. "k8" ist ebenso wie "opteron" und "athlon-fx" einfach ein Synonym für "athlon64". -march sagt, dass Code erzeugt werden soll, der auf anderen CPUs nicht unbedingt laufen muss, während -mtune (bzw. -mcpu bis gcc 3.3.x) portable Optimierungen (innerhalb der Prozessorfamilie) bewirkt und bei -march inklusiv ist. Nachdem bei Gentoo normalerweise Code speziell für einen bestimmten Rechner erzeugt werden soll, ist das erste Beispiel in der Regel nicht wirklich sinnvoll.

----------

## flammenflitzer

Danke

----------

