Начало Вход/Регистрация Помощ Tazi stranica s latinski bukwi
Области
 Новини
 Актуална тема
 Linux портали
 Какво е Линукс?
 Въпроси-отговори
 Форуми
   •Трудова борса
   •Конкурс
 Статии
 Дистрибуции
   •Поръчка на CD
 Made In BG
 Файлове
 Връзки
 Галерия
 Конференции
Настройки
 Външен вид
 Предложения
 Направи си сам
И още ...
 За нас
 Линукс за българи ЕООД
 Линк към нас
 Предложения

Подкрепяно от:
TelePoint - Място за хора със свободни идеи

SiteGround

initLab

Adsys Group

SAP Bulgaria

Въпроси отговори
Въпрос: GCC default values
[Търси: ]

ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.

Към началото |Добави въпрос |Отговори
 
Въпрос
От: Ivo Дата: 03/26/2005
 От известно време се питам къде са опциите по подразбиране
 на GCC. Имам предвид, че ако не се окажат някакви други
 опции, винаги компилира с -O2 примерно... та ми се ще да
 мога да ги променя за да не го правя всеки път когато
компилирам нещо.
Поздрави



Отговор #1
От: Ivo Дата: 03/26/2005
Полезен скрипт:

#!/bin/sh

# Author: pixelbeat

#This script is Linux specific
#It should work on any gcc >= 2.95 at least

#these apply to any arch (just here for reference)
 unsafe_math_opts="-ffast-math -fno-math-errno
-funsafe-math-optimizations -fno-trapping-math"

 gcc_version=`gcc -dumpversion | sed
's/\([0-9]\{1,\}\.[0-9]\{1,\}\)\.*\([0-9]\{1,\}\)\{0,1\}/\1\2/'`

IFS=":"
while read name value; do
    unset IFS
    name=`echo $name`
    value=`echo $value`
    IFS=":"
    if [ "$name" == "vendor_id" ]; then
        vendor_id="$value"
    elif [ "$name" == "cpu family" ]; then
        cpu_family="$value"
    elif [ "$name" == "model" ]; then
        cpu_model="$value"
    elif [ "$name" == "flags" ]; then
        flags="$value"
    fi
done < /proc/cpuinfo
unset IFS

if [ "$vendor_id" == "AuthenticAMD" ]; then
    if [ "$cpu_family" == "4" ]; then
        _CFLAGS="$_CFLAGS -march=i486"
    elif [ "$cpu_family" == "5" ]; then
        if [ "$cpu_model" -lt "4" ]; then
            _CFLAGS="$_CFLAGS -march=pentium"
         elif [ "$cpu_model" == "6" ] || [ "$cpu_model" ==
"7" ]; then
            _CFLAGS="$_CFLAGS -march=k6"
         elif [ "$cpu_model" == "8" ] || [ "$cpu_model" ==
"12" ]; then
            if expr $gcc_version '>=' 3.1 >/dev/null; then
                _CFLAGS="$_CFLAGS -march=k6-2"
            else
                _CFLAGS="$_CFLAGS -march=k6"
            fi
         elif [ "$cpu_model" == "9" ] || [ "$cpu_model" ==
"13" ]; then
            if expr $gcc_version '>=' 3.1 >/dev/null; then
                _CFLAGS="$_CFLAGS -march=k6-3"
            else
                _CFLAGS="$_CFLAGS -march=k6"
            fi
        fi
    elif [ "$cpu_family" == "6" ]; then
        if [ "$cpu_model" -le "3" ]; then
            if expr $gcc_version '>=' 3.0 >/dev/null; then
                _CFLAGS="$_CFLAGS -march=athlon"
            else
                _CFLAGS="$_CFLAGS -march=k6"
            fi
        elif [ "$cpu_model" == "4" ]; then
            if expr $gcc_version '>=' 3.1 >/dev/null; then
                _CFLAGS="$_CFLAGS -march=athlon-tbird"
             elif expr $gcc_version '>=' 3.0 >/dev/null;
then
                _CFLAGS="$_CFLAGS -march=athlon"
            else
                _CFLAGS="$_CFLAGS -march=k6"
            fi
         elif [ "$cpu_model" -ge "6" ]; then
#athlon-{4,xp,mp}
            if expr $gcc_version '>=' 3.1 >/dev/null; then
                _CFLAGS="$_CFLAGS -march=athlon-xp"
             elif expr $gcc_version '>=' 3.0 >/dev/null;
then
                _CFLAGS="$_CFLAGS -march=athlon"
            else
                _CFLAGS="$_CFLAGS -march=k6"
            fi
        fi
    fi
else #everything else "GenuineIntel"
    if [ "$cpu_family" == "3" ]; then
        _CFLAGS="$_CFLAGS -march=i386"
    elif [ "$cpu_family" == "4" ]; then
        _CFLAGS="$_CFLAGS -march=i486"
     elif [ "$cpu_family" == "5" ] && expr $gcc_version '<'
3.1 >/dev/null; then
        _CFLAGS="$_CFLAGS -march=pentium"
     elif [ "$cpu_family" -ge "6" ] && expr $gcc_version '<'
3.1 >/dev/null; then
        _CFLAGS="$_CFLAGS -march=pentiumpro"
    elif [ "$cpu_family" == "5" ]; then
        if [ "$cpu_model" != "4" ]; then
            _CFLAGS="$_CFLAGS -march=pentium"
        else
             _CFLAGS="$_CFLAGS -march=pentium-mmx" #No
overlap with other vendors
        fi
    elif [ "$cpu_family" == "6" ]; then
         if echo "$flags" | grep -vq cmov; then #gcc
incorrectly assumes i686 always has cmov
             _CFLAGS="$_CFLAGS -march=pentium
-mcpu=pentiumpro" #VIA CPUs exhibit this
        else
             if [ "$cpu_model" == "0" ] || [ "$cpu_model" ==
"1" ]; then
                _CFLAGS="$_CFLAGS -march=pentiumpro"
             elif [ "$cpu_model" -ge "3" ] && [ "$cpu_model"
-le "6" ]; then #4=TM5600 at least
                _CFLAGS="$_CFLAGS -march=pentium2"
             elif [ "$cpu_model" -ge "7" ] && [ "$cpu_model"
-le "11" ]; then #9 invalid
                _CFLAGS="$_CFLAGS -march=pentium3"
            fi
        fi
    elif [ "$cpu_family" == "15" ]; then
        _CFLAGS="$_CFLAGS -march=pentium4"
    fi
fi

if expr $gcc_version '>=' 3.1 >/dev/null; then
    if echo "$flags" | grep -q sse2; then
        _CFLAGS="$_CFLAGS -mfpmath=sse -msse2"
    elif echo "$flags" | grep -q sse; then
        _CFLAGS="$_CFLAGS -mfpmath=sse -msse"
    fi
    if echo "$flags" | grep -q mmx; then
        _CFLAGS="$_CFLAGS -mmmx"
    fi
    if echo "$flags" | grep -q 3dnow; then
        _CFLAGS="$_CFLAGS -m3dnow"
    fi
fi

echo "$_CFLAGS"



<< ctorrent missing key (3 ) | malko help za edno skripche (2 ) >>

 
© 2011-... Асоциация "Линукс за българи"
© 2007-2010 Линукс за българи ЕООД
© 1999-2006 Slavej Karadjov
Ако искате да препечатате или цитирате информация от този сайт прочетете първо това
Външния вид е направен от MOMCHE
Code Version: 1.0.8 H (Revision: 23-09-2011)
 
Изпълнението отне: 0 wallclock secs ( 0.07 usr + 0.01 sys = 0.08 CPU)