• [^] # Re: Impacte ?

    Posté par . En réponse au journal Slackware est désormais passée à la modernité. Évalué à 4.

    Dans le fichier arch/x86/Makefile_32.cpu, dont je cite le début:

    # CPU tuning section - shared with UML.
    # Must change only cflags-y (or [yn]), not CFLAGS! That makes a difference for UML.
    #-mtune exists since gcc 3.4
    HAS_MTUNE := $(call cc-option-yn, -mtune=i386)
    ifeq ($(HAS_MTUNE),y)
    tune = $(call cc-option,-mtune=$(1),$(2))
    else
    tune = $(call cc-option,-mcpu=$(1),$(2))
    endif
    align := $(cc-option-align)
    cflags-$(CONFIG_M386) += -march=i386
    cflags-$(CONFIG_M486) += -march=i486
    

    le processeur choisi dans CONFIG_MXYZ détermine le drapeau -march passé à gcc.
    Le manuel de gcc détaille le comportement de -march et -mtune: -mtune fait uniquement des optimisations compatibles avec le -march choisi, mais -march fait toutes les optimisations pour ce type de processeur et peut générer des codes opérations spécifiques. Par exemple, Slackware compile les logiciels en mode utilisateur (sauf peut-être Firefox, mais on sait bien que le vrai navigateur favori de Slackware est SeaMonkey) avec les options
    -O2 -march=i486 -mtune=i686
    

    ce qui génère des programmes optimisés pour 686 en n'utilisant que des codes opérations compatibles avec le 486.