Хочется сделать простой файлик сборки нового ядра с PAE и оптимизацией под I686_CPU.
Произойдёт ли оптимизация, если указать так:
Код: Выделить всё
cpu I686_CPU
include PAE
ident new_core
Модератор: terminus
Код: Выделить всё
cpu I686_CPU
include PAE
ident new_core
Спасибо! Это реально стандартное решение для ядра, или интуитивное?Fioktist писал(а):а /etc/make.conf есть еще
man make.conf
CPUTYPE=i686
и тд... многабукв... неасилить всю книжкуMichael Lucas, Absolute FreeBSD 2009 писал(а):Если указать тип CPU в файле /etc/make.conf, компилятор попытается оптимизировать програмное обеспечение под указанный микропроцессор.
Это может положительно сказаться на производительности в случае обновления операционной системы из исходных кодов. FreeBSD оптимизирует под конкректный процессор не только саму операционную систему, но и любое програмное обеспечение сторонних производителей, которое будет устанавливаться в последствии.
На отдельной машине всегда устанавливайте значение параметра CPUTYPE в соответствии с фактическим типом микропроцессора. если сборка производится на одной машине, а затем через NFS экспортируются каталоги /usr/obj и /usr/src для других машин, то чтобы выполнять на них обновление, минуя этап компиляции, устанавливайте значение CPUTYPE равным самому слабому CPU всех систем
Код: Выделить всё
p3-800# head -7 /etc/make.conf
#
NO_INET6="YES"
# commented by lissyara 2007-09-03 in 3:45 MSK
# [классический секс]. третья смена железа на машине за две недели
#CPUTYPE=i686
p3-800#
www.lissyara.su писал(а): http://www.lissyara.su/?id=1326
# Тип проца у меня p3 (ниже у меня он также фигурирует как pentium3)
# Intel x86 architecture:
# (AMD CPUs) opteron athlon64 athlon-mp athlon-xp athlon-4
# athlon-tbird athlon k8 k6-3 k6-2 k6 k5
# (Intel CPUs) nocona pentium4[m] prescott pentium3[m] pentium-m
# pentium2 pentiumpro pentium-mmx pentium i486 i386
# (Via CPUs) c3 c3-2
# Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4
# AMD64 architecture: opteron, athlon64, nocona
# Intel ia64 architecture: itanium2, itanium
Код: Выделить всё
include GENERIC
Код: Выделить всё
CPUTYPE?=core
Код: Выделить всё
$ gcc45 -E -v -march=core2 - </dev/null |& fgrep cc1
/usr/local/libexec/gcc45/gcc/x86_64-portbld-freebsd8.0/4.5.0/cc1 -E -quiet -v - -march=core2
$ gcc45 -E -v -march=native - </dev/null |& fgrep cc1
/usr/local/libexec/gcc45/gcc/x86_64-portbld-freebsd8.0/4.5.0/cc1 -E -quiet -v - -march=core2 -mcx16 -msahf -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core2
Код: Выделить всё
. if ${MACHINE_ARCH} == "i386"
. if ${CPUTYPE} == "core" || ${CPUTYPE} == "core2"
CPUTYPE = prescott
. endif
. elif ${MACHINE_ARCH} == "amd64"
. if ${CPUTYPE} == "prescott" || ${CPUTYPE} == "core2"
CPUTYPE = nocona
. endif
. endif
Код: Выделить всё
.if ${CC:Mclang} || ${CXX:Mclang}
CPUTYPE?="core2"
.else
CPUTYPE?=native
.endif