Maceraya hazır mısın! bir BSD almaz mısın?

Duyuru
* Forum tasarımımız yenilendi.
* FreeBSD 10.4 - RELEASE Final çıktı.
* FreeBSD 11.1 - RELEASE Final çıktı.
Son Mesajlar
Çevrimiçi (0)

Make.conf'u ayarlamak (GCC veya Clang)

FelasifeFelasife 1,634
Mart 2016 düzenlendi Yapılandırma
BSD altında derleme yaparken /etc/make.conf dosyasını ayarlamak iyi fikirdir.
Bu noktada GCC veya Clang derleme yöntemlerinden birini isteğinize göre seçebilirsiniz.
FreeBSD 9.X sürümlerinden itibaren Clang yöntemi isteğe göre seçilebiliyor, 10.x sürümünden itibarende varsayılan olarak Clang'ın kullanılmaya başlanacağı söyleniyor.
Clang'ı kontrol etmek için.
clang -v



FreeBSD clang version 3.2 (tags/RELEASE_32/final 170710) 20121221

Target: x86_64-unknown-freebsd9.1

Thread model: posix

Tabii Clang şart değil, GCC ilede devam edebilirsiniz.

".....GCCGCC de işlemcinizin marka/model bilgilerini iyi bilmeniz gerekir, dmesg çıktıları işinize yarayacaktır.
dmesg | grep -e CPU: -e Features

CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-52 (1600.25-MHz K8-class CPU)



Features=0x178bfbff

Features2=0x2001

AMD Features=0xea500800

AMD Features2=0x1f

Burada bizi en çok ilgilendiren K8 kısmıdır, tabii bu sizde başka işlemci varsa daha değişik olacaktır, ona dikkat ederek, burayı [1] özellikle kontrol ederek, make.conf dosyanıza ilgili parametreleri en üste girmenizdir.
Benim üstte verdiğim çıktıya göre bir örneği görebilirsiniz.
CPUTYPE=k8

CHOST=x86_64-pc-linux-gnu

CFLAGS=-march=k8 -msse3 -O2 -pipe

CXXFLAGS=${CFLAGS}

DİKKAT:
Gentoo wiki'sinde önce işlemcinizin marka ve modeline göre arayın, tam eşleşmesine dikkat edin, eğer işlemciniz listede yoksa en yakın olan işlemciye göre parametre seçimini yapın.
"....ClangClang'ta olay biraz daha farklı Gentto wiki'sine gerek yok, /usr/src/contrib/llvm/lib/Support/Host.cpp dosyasında işlemcinizin modülünü bulup, make.conf'a girebilirsiniz.
Örn.
dmesg | grep -e CPU: -e Features

CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-52 (1600.25-MHz K8-class CPU)



Features=0x178bfbff

Features2=0x2001

AMD Features=0xea500800

AMD Features2=0x1f

make.conf girilecek parametre.
CPUTYPE?=k8-sse3

CC=clang

CXX=clang++

CPP=clang-cpp



NO_WERROR=

WERROR=

İşlemci tanımlamaları (flagları) aşağı yukarı böyledir.
---
Bu noktada ilginç durumlarda yok değil hani, örn. benim diğer makinenin işlemci modülü K8 gösterirken, AMD nin sitesinden araştırdığımında bunun K10 modülü olduğunu gördüm.
CPU: AMD Athlon(tm) II Dual-Core M320 (2099.31-MHz K8-class CPU)



Features=0x178bfbff

Features2=0x802009

AMD Features=0xee500800

AMD Features2=0x377f

Görüldüğü gibi diğer K8 den daha fazla özelliğe sahip, dolayısıyla bende AMD sitesine göre (K10) düzenledim make.conf'u
K10 modülü Host.cpp dosyasında amdfam10 olarak geçiyor.
CPUTYPE?=amdfam10

CC=clang

CXX=clang++

CPP=clang-cpp

NO_WERROR=

WERROR=


"...Ortak ParametrelerMake.conf dosyasına gerek GCC gereksede Clang kullanın fark etmez bazı öntanımlı derleme parametrelerinide girebilirsiniz.
KERNCONF=GENERIC

WITHOUT_DEBUG=yes

NO_PROFILE=yes

BUILD_STATIC=yes

WITH_LCD_FILTERING=yes

WITHOUT_NOUVEAU=yes

WITHOUT_PULSEAUDIO=yes

NO_SENDMAIL=yes

KDE4_PREFIC=yes

WITH_NLS=yes

WITH_X11=yes

WITH ilgili parametreyi kabul eder.
WITHOUT da ret etmek için kullanılır.
Birde parallel ports denilen bir özellik var, bu da işlemcinizin gücüne göre daha fazla işlem yapması anlamına geliyor, çoğu portlar parallel port derlemesini destekliyor ama bazı java, icedtea-web gibi uygulamalar bunu desteklemiyor.
Dolayısıyla bu özelliği kullanmak için altaki parametreyi kullanabilirsiniz.
#DISABLE_MAKE_JOBS=true

FORCE_MAKE_JOBS=yes

MAKE_JOBS_NUMBER=4

Eğer ki derlemede sorun çıktıysa bu büyük ihtimal MAKE_JOBS desteğini kapatmanız gerekecektir o zamanda satırı böyle yapınız.
DISABLE_MAKE_JOBS=true

#FORCE_MAKE_JOBS=yes

#MAKE_JOBS_NUMBER=4

Derleme yaparken top -CHIP ile işlemci hareketlerini gözlemyebilirsiniz.
[1]
GCC Optimizasyon Türkçe
Processor Specific CFLAGS Orjinal
Kaynaklar:
https://wiki.freebsd.org/BuildingFreeBSDWithClang
https://wiki.freebsd.org/PortsAndClang
http://forums.freebsd.org/showthread.php?t=19469
http://www.freebsd.org/cgi/man.cgi?query=make.conf&sektion=5
http://networking.ringofsaturn.com/Unix/freebsdmakeconf.php
http://blog.up-link.ro/freebsd-optimizations-etc-make-conf/
http://basicuse.net/articles/os/bsd/freebsd/optimization_by_make_conf_in_freebsd

Maceraya hazır mısın?  Bir BSD almaz mısın!
Yorum yapmak için Oturum Açın yada Kayıt Olun .