# CFLAGS für einzelne Pakete anpassen

## LinuxTom

Hallo,

leider finde ich nichts darüber. Bei USE-Flags ist es ja klar. Kann mir jemand sagen, ob und wie das geht?

----------

## 69719

```

/etc/portage/env

```

sollte dich weiter bringen.

----------

## Josef.95

Genauer

 *Gentoo Kompilations-Optimierungs-Leitfaden wrote:*   

> Kann ich pro-Paket Flags benutzen?
> 
> Es gibt keine unterstützte Methode, um CFLAGS oder andere Variablen auf einer pro-Paket-Basis zu verwenden, auch wenn es einige ziemlich missbrauchende Wege gibt, Portage zu diesem Verhalten zu zwingen.
> 
> Sie sollten nicht versuchen, Portage zu zwingen, pro-Paket-Flags zu verwenden, da dies in keinster Weise unterstützt wird und Bug-Reports erheblich erschwert. Setzen Sie Ihre Flags einfach in /etc/make.conf, so dass sie systemweit genutzt werden.

   :Wink: 

----------

## Christian99

Kannst auch mal hier schaun

----------

## LinuxTom

Ok, verstehe ich, doch leider kompiliert das Paket sys-apps/v86d nicht mit den Flags:

```
--param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=2048
```

Ich habe die Parameter jetzt raus genommen. Das Programm dev-libs/klibc-1.5.12-r1 kennt dieses nicht.

----------

## Christian99

wie hast du die parameter wo rausgenommen, und was ist mit klibc?

Schreib doch ein bisschen genauer was ist, und was du vorhast.

----------

## LinuxTom

Ich habe die Optimierungen des GCC-4.4.3 genommen, die er selbst auf der Maschine empfiehlt und dann in die make.conf geschriebenen, damit ich nicht -march=native schreiben muss:

```
cc -march=native -E -v - </dev/null 2>&1 | grep cc1
```

Jedoch sind die Parameter auch nicht wirklich in der Übersicht:

```
gcc -Q --help=target -march=native
```

drin.

Dann habe ich das System komplett neu gebaut und da kam der Fehler. Genauer kann ich es jetzt nicht mehr sagen, da ohne die Parameter das Paket jetzt Fehlerfrei durchlief.

Aber der Hinweis von Christian99 ist sehr interessant. Hilft mir jedoch nicht weiter, da ich unter "/etc/portage/" nichts verändern will. Ich arbeite mit einem eigenen Profil. Wenn jemand weiß, wo ich die CFLAGS dort einstellen kann, für ein bestimmtes Paket?

----------

## Christian99

Die --param option findest du in den onlinedocs: http://gcc.gnu.org/onlinedocs/gcc-4.4.5/gcc/Optimize-Options.html#index-param-799

wieso aber willst du nicht march=native verwenden?

----------

## toralf

 *LinuxTom wrote:*   

> Wenn jemand weiß, wo ich die CFLAGS dort einstellen kann, für ein bestimmtes Paket?

 Für den Standardweg sieht eine mögliche Lösung so aus :

```
tfoerste@n22 /etc/portage/env $ cat kde-base/kdm 

CFLAGS="-O2 -march=native -pipe -g -ggdb"                                                

CXXFLAGS="${CFLAGS}"                                                                      

FEATURES="${FEATURES} splitdebug"

```

Für mein System beispielsweise habe ich die Datei /etc/portage/env/default erzeugt und symlinke dann alle enrsprechenden Pakete dorthin, da ich im Wesentlichen die CFLAGS nur abändere, um Debuginformationen für ggdb, drkonqi etc. zu erhalten.

----------

## LinuxTom

 *Christian99 wrote:*   

> wieso aber willst du nicht march=native verwenden?

 

Weil ich einen kleinen i586-Laptop nicht selbst bauen lasse. Oder einen Atom-Prozessor, der als TV-Guide fungiert. Dazu nehme ich meinen Core-i7 und der i586 holt sich dann die entsprechenden fertig gebauten Pakete ab.

 *toralf wrote:*   

> Für mein System beispielsweise ...

 

Ich will das alles mit meinem Portage-Profile machen. Also einen Link von bspw. /etc/portage/env/kde-base/kdm in mein Profile-Dir.

----------

