# [CFLAGS] Les utiliser lors de la compil d'un kernel

## razer

Hello,

Question bête auquelle malheureusement je n'ai pas trouvé de réponse, pas tellement étonnant vu la pertinence du moteur de recherche du forum   :Confused: 

Comment utiliser les CFLAGS précisés dans le make.conf lors d'une compilation manuelle d'un kernel ?

Merci

----------

## Alexis

Tiens j'ai trouvé ça :

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

ça date un peu ptetre.

Honnêtement je te déconseille de faire ça, tu peux préciser ton archi dans ta config kernel, ce qui met le -march, et probablement que le -O2 est par défaut.

Après je pense que tu risques plus d'être confronté à des miscompilations qu'à des gains significatifs.

----------

## sireyessire

sinon il y avait à un moment un patch qui permettait de rentrer ces cflags custom lors de la configuration, on le trouvait assez souvent dans les patchsets rock and roll du type love-sources et autres consorts. si tu fais une recherche sur un patch custom cflags dans google tu devrais peut-être trouver.

----------

## razer

Merci à vous 2.

Je ne sais pas si j'appliquerais ces méthodes, c'était surtout par curiosité que je me posait la question

----------

## xaviermiller

sinon tu fais 

```
source /etc/make.conf
```

 avant de compiler ton kernel  :Wink: 

----------

## Enlight

 *XavierMiller wrote:*   

> sinon tu fais 
> 
> ```
> source /etc/make.conf
> ```
> ...

 

Faux!

Par contre ça doit pouvoir se changer comme ceci... (mais j'essayerai pas pour le moment)

 *Quote:*   

> cd /usr/src/linux
> 
> mv -v Makefile{,.orig}
> 
> cat Makefile.orig | sed 's@CFLAGS_KERNEL =@CFLAGS_KERNEL +=@1' > Makefile
> ...

 

edit : arf ben le post d'Alexis confirme en partie ce que je pensais, par contre je ne sais pas comment étaient les Makefile en 2002 mais celui d'aujourdh'ui remet à zéro les KERNEL CFLAGS d'où le sed.

 *Quote:*   

> make(1) comprend plusieurs types d'affectations :
> 
> =	affecte une valeur à la variable, ecrasant toute valeur precedemment
> 
> 	affectée
> ...

 

----------

## Enlight

Bon ben sont passé où les pionniers??? va falloire que je tente moi même ???  :Mr. Green:  j'ai un emerge world a finir là et c'est pas rien!

----------

## kopp

Oarf bah, j'ai un projet à rendre pour demain (bien sûr j'ai pas terminé, et j'ai DS d'info à 8h, pfiu heureusement que c'est facile ces DS  :Smile: 

J'ai déjà été embêté pour mon compte rendu à cause de certains cflags (un certain ftree-vectorize pour ne pas le nommer) qui faisait planter oowriter (en fait, ça venait de freetype qu'il m'a fallut recompiler sans ce cflag)...

mais demain 10h je devrais avoir fini, et j'essayerais aussi  :Smile: 

----------

## Enlight

Les gars n'essayez surtout PAS (ou du moins pas sans un max de precautions)!!! je viens de peter ma gentoo a devoir reinstaller!!!

en gros dans mon /boot j avais mon 2.6.17 et quelques vieux 2.6.15 j ai utilise make install donc mon 2.6.17 devient .old je reboote : triple fault je refais un kernel avec des CFLAGS plus light make install me dis au pire j ai les vieux kernels, re triple fault et la au reboot c'est la fin des haricots, la glibc n etait compilee pour n accepter QUE des kernels >= 2.6.16

----------

## blasserre

 *Enlight wrote:*   

> Les gars n'essayez surtout PAS (ou du moins pas sans un max de precautions)!!! je viens de peter ma gentoo a devoir reinstaller!!!

 tu peux pas bêtement recompiler un kernel à partir du livecd ?

 *Enlight wrote:*   

> la glibc n etait compilee pour n accepter QUE des kernels >= 2.6.16

 

question idiote : comment est-ce possible ?

----------

## Enlight

 *blasserre wrote:*   

>  *Enlight wrote:*   Les gars n'essayez surtout PAS (ou du moins pas sans un max de precautions)!!! je viens de peter ma gentoo a devoir reinstaller!!! tu peux pas bêtement recompiler un kernel à partir du livecd ?
> 
>  *Enlight wrote:*   la glibc n etait compilee pour n accepter QUE des kernels >= 2.6.16 
> 
> question idiote : comment est-ce possible ?

 

Glibc d'overlay dansle configure ya une option enable-kernel= du coup /a trashe tout le code utile uniquement aux versions inferieures a celle specifiee. du coup avec la version de kernel du live-cd je pouvais pas chrooter et un mount -o bind de lib et usr/lin n assurait pas correctement toutes les fonctions necessaires a la compile.

----------

## blasserre

merci pour l'info

----------

