IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Compilation de kernel - Makefile de premier niveau.


Sujet :

Administration système

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut Compilation de kernel - Makefile de premier niveau.
    Bonjour, je voudrai poser une question.
    Voilà je voudrai compiler mon noyau en optimisant le résultat à l'aide de GCC (options -march, ...). J'utilise les sources fournies par la distribution Debian version 3.1, qui sont les sources "Debian" du noyau 2.6.8.
    Si vous n'avez pas envie de lire du shell script, vous pouvez aller à la fin du post pour lire la question, peut être saurez vous y répondre. Les citations de Makefile sont juste là pour situer le propos.

    Dans le Makefile de premier niveau (répertoire ~/src/linux )
    Un moment, j'ai modifié l'initialisation de HOSTCFLAGS et HOSTCXXFLAGS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HOSTCC          = gcc
    HOSTCXX         = g++
    HOSTCFLAGS      = -march=athlon-xp -m32 -msse3 -pipe -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -m3dnow
    HOSTCXXFLAGS    = -march=athlon-xp -m32 -msse3 -pipe -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -m3dnow
    Après, il y a un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MAKEFLAGS += --include-dir=$(srctree)
    Et puis un moment dans le Makefile, il y a aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    # Make variables (CC, etc...)
     
    AS              = $(CROSS_COMPILE)as
    LD              = $(CROSS_COMPILE)ld
    CC              = $(CROSS_COMPILE)gcc
    CPP             = $(CC) -E
    AR              = $(CROSS_COMPILE)ar
    NM              = $(CROSS_COMPILE)nm
    STRIP           = $(CROSS_COMPILE)strip
    OBJCOPY         = $(CROSS_COMPILE)objcopy
    OBJDUMP         = $(CROSS_COMPILE)objdump
    AWK             = awk
    GENKSYMS        = scripts/genksyms/genksyms
    DEPMOD          = /sbin/depmod
    KALLSYMS        = scripts/kallsyms
    PERL            = perl
    CHECK           = sparse
    MODFLAGS        = -DMODULE
    CFLAGS_MODULE   = $(MODFLAGS)
    AFLAGS_MODULE   = $(MODFLAGS)
    LDFLAGS_MODULE  = -r
    CFLAGS_KERNEL   =
    AFLAGS_KERNEL   =
     
    NOSTDINC_FLAGS  = -nostdinc -iwithprefix include
     
    CPPFLAGS        := -D__KERNEL__ -Iinclude \
                       $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
     
    CFLAGS          := -Wall -Wstrict-prototypes -Wno-trigraphs \
                       -fno-strict-aliasing -fno-common
    AFLAGS          := -D__ASSEMBLY__
    Et je vois par ci par là des trucs comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CFLAGS += -uneoption
    MAKEFLAGS +=-uneautreoption
    J'aimerai savoir comment passer les options de compilations à GCC. Faut-il modifier le Makefile directement comme je l'ai fait (voir début), ou faut-il rajouter un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CFLAGS += -athlon-xp -msse3 ...
    à un endroit dans le Makefile (hasardeux, autant que la première méthode, modifier le Makefile du noyau ) ou alors faire avant compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    export CFLAGS="-march=athlon-xp -m32 -msse3 -pipe -Wall -Wstrict-prototypes -O2"
    export CXXFLAGS="-march=athlon-xp -m32 -msse3 -pipe -Wall -Wstrict-prototypes -O2"
    Et qu'est ce que sont les variables HOSTCFLAGS et HOSTCXXFLAGS ?

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut
    J'ai trouvé la réponse. Merci pour tout. Au revoir

    To sqeeze a few percentage more performance out of the kernel you can use compiler flags. Run the following from the command line before running make-kpkg kernel-image for an AMD Athlon 32-bit processor.

    export CHOST="i686-pc-linux-gnu"
    export CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer -m3dnow -msse -mfpmath=sse -mmmx"
    export CXXFLAGS="${CFLAGS}"

    Find out more, some explaination about compiler flags.
    http://debian.textbody.com/compile.php

    edit : d'accord, je sais comment faire, mais ça ne m'a pas tout expliqué sur les LDFLAGS, CFLAGS, etc. Comment voir les options de compilation s'afficher lors de la compilation ? Quels sont les paramètres à passer à la variable MAKEFLAGS ? Quelqu'un peut m'indiquer un page de man ou un lien pour en apprendre un peu plus sur la compilation en général, et la compilation de Kernel en particulier ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compiler le Kernel
    Par Jean_Benoit dans le forum Administration système
    Réponses: 5
    Dernier message: 15/03/2007, 15h47
  2. Objet avec options de compilation dans un makefile
    Par z980x dans le forum Systèmes de compilation
    Réponses: 4
    Dernier message: 27/09/2006, 07h17
  3. [debutant] compilation gcc et makefile
    Par harsh dans le forum Systèmes de compilation
    Réponses: 4
    Dernier message: 08/06/2006, 18h30
  4. Réponses: 1
    Dernier message: 18/06/2004, 01h12
  5. Compilation avec un Makefile
    Par Mau dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 28/02/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo