Вернуться Форум Bashtel.RU > Разное > OS и Программное обеспечение > Linux
Ответ
 
Опции темы Опции просмотра

Компиляция с сырцов: делимся впечатлениями
Старый 30.10.2007, 21:18   #1
Пользователь
 
Jacob вне форума
Регистрация: 29.10.2007
Адрес: Уфа
Сообщений: 100
Вопрос Компиляция с сырцов: делимся впечатлениями

Компилировал ядро линукса на PIII процессоре
с целью включения оптимизации под оный же,
длительность процесса минут 40 - 60.
Некоторые даже работали. Одно скомпилилось
с багами и система замерзала начисто после пяти минут работы.
Компилил Wine, мне показалось что долго,
часа полтора!
Какие дисты кроме Slacware приходят с полным
комплектом сырцов, раскажите.
Как провести деинсталяцию софта сделаного с
с сырца командой bash$ make uninstall?
-----------------------------------------------------
X Fast Cool Enveriopment 4.4.1
  Ответить с цитированием
 

Старый 31.10.2007, 17:11   #2
Пользователь
 
Аватар для gcc
 
gcc вне форума
Регистрация: 05.09.2007
Адрес: Стерлитамак
Сообщений: 249
Отправить сообщение для gcc с помощью ICQ
По умолчанию

Mandrake 10, Mandriva 2007 идут с Kernel-source!
Чтобы удалить less readme;less Makefile почитай!
__________________
  Ответить с цитированием
 

Оптимизация софта под камень
Старый 01.11.2007, 08:15   #3
Пользователь
 
Jacob вне форума
Регистрация: 29.10.2007
Адрес: Уфа
Сообщений: 100
По умолчанию Оптимизация софта под камень

Цель поста выяснить наличный опыт перекомплиции программ под
систему. Не только ядра, но и скажем Иксов и KDE. Сколько недель длиться
компиляция? Как реализуется оптимизация программного кода в системах W*ndows XP или Vista в сравнении с Un*x ? Она тама вообще есть, нет ли? Все исходные
тексты ессть в таком дистре как Слак, ясно речь не идёт об убунтах.
Сидеть с Core2Duo, когда весь софт скомпилен под 486 камень, это довольно забавно, нет?
  Ответить с цитированием
 

Старый 01.11.2007, 17:39   #4
Местный
 
Аватар для Marlboro
 
Marlboro вне форума
Регистрация: 11.08.2006
Сообщений: 713
По умолчанию

Цитата:
Сообщение от Jacob Посмотреть сообщение
Сидеть с Core2Duo, когда весь софт скомпилен под 486 камень, это довольно забавно, нет?
Может быть 64битные дистры линукса использовать?


ЗЫ Gentoo?
__________________
Черти внимательно осмотрели мою душу, затем вежливо вернули ее и побежали мыть руки
  Ответить с цитированием
 

Старый 01.11.2007, 22:07   #5
Старожил форума
 
Аватар для weblomaster
 
weblomaster вне форума
Регистрация: 06.05.2006
Адрес: Yф@
Сообщений: 2,211
Отправить сообщение для weblomaster с помощью ICQ
По умолчанию

Цитата:
Сообщение от Marlboro Посмотреть сообщение
Может быть 64битные дистры линукса использовать?


ЗЫ Gentoo?
Если меньше 4 гигов оперативки и не работаешь с математикой то толку мало. По поводу оптимизации - софт, скомпиленный под i386 зачастую работает быстрее так как банально бинарики меньше по размеру и могут поместится в кеше.

ЗЫ А компиляция ванильного ядра на Мандриве - это те ещё ощущения. В дебиане всё компилируется без проблем однако пакеты слишком мелко нарезаны и заголовочные файлы библиотек практически всегда в отдельных пакетах
__________________
Мне пророчили с детства службу точным наукам
Теперь я ощущаю тягу только к плану и сукам (с) Шым
  Ответить с цитированием
 

Старый 02.11.2007, 16:29   #6
Пользователь
 
Аватар для gcc
 
gcc вне форума
Регистрация: 05.09.2007
Адрес: Стерлитамак
Сообщений: 249
Отправить сообщение для gcc с помощью ICQ
По умолчанию

Цитата:
Сообщение от Jacob Посмотреть сообщение
Сидеть с Core2Duo, когда весь софт скомпилен под 486 камень, это довольно забавно, нет?
И ты собрался всю систему пересобрать ради этого???
Да и в принципе что ты собрался оптимизировать???
__________________
  Ответить с цитированием
 

Старый 04.11.2007, 03:05   #7
Пользователь
 
Jacob вне форума
Регистрация: 29.10.2007
Адрес: Уфа
Сообщений: 100
Восклицание

Цитата, по англиски, на вопрос "что ты будишь оптимизировать..."


Optimized gcc compiling (cflags/cxxflags, distcc, ccache)
2004-03-20, xiando, v0.1

How to make your programs compile and run faster by doing some small adjustments





--------------------------------------------------------------------------------


What are the flags CHOST, CFLAGS, CXXFLAGS?
1.1. The important flags
1.2. How do I set these flags?
using ccache for faster compiling using cached gcc results.
2.1. Using with Gentoo Linux
distcc for faster compiling using slaves in a network
3.1. Using distcc on Gentoo linux
Related links


--------------------------------------------------------------------------------


1. What are the flags CHOST, CFLAGS, CXXFLAGS?
When you compile software, these environment variables are used by the build process (./configure && make) to optimize the program code.

Program files are usually made so they can run on any i386-compatible computer. But they can be optimized for only one CPU type, making them run faster. Noticeably faster...

Mandrake LinuxTM Linux is optimized for i586, making it faster on must CPUs. This also means it will not run on i386 or i486.

For the best performance, use binaries made for your cpu or compile yourself, using optimized settings for CHOST, CFLAGS, CXXFLAGS

1.1. The important flags
The most important flags are -mcpu and -march.

`-mcpu=pentium3` means the code will be optimized to run on Pentium3, but will also run on i386.

`-march=pentium3` means the code will only run on a Pentium3.

when -march=arch is set, -mcpu=arch is honored.

`-O[n]` (the letter O, and a number) Various levels of optimization. -O1 , -O2 and -O3, where -O3 is highest.

The available flags depend on your compiler supports. Check the gcc man page for your compiler to check available flags for -march and -mcpu.

Generally, I recommend only using -O2 (or -O3). Some code like mozilla will faile even at -O2. Gentoo Linux filters away dangerous flags are filtered away from many ebuilds because of this. The higher the optimization, the higher the risk of errors.

gcc 2.95.x flags For K6, K6-2 and Athlon, you may use these values:

CFLAGS="-O2 -march=k6 -mcpu=k6"

gcc 3.1, 3.2.x flags

The newer gcc has support for many compiler flags. It supports most architectures like `-march=athlon, athlon-xp, pentium4`, etc...

`-pipe` speeds up the compilation process (no gain at runtime)

`-fomit-fame-pointer` makes programs faster at runtime, but makes debugging impossible. -O turns on -fomit-frame-pointer on machines where doing so does not interfere with debugging. x86 processors need the frame pointer for debugging, so -fomit-frame-pointer is not turned on by default.

`-m3dnow -msse -mfpmath=sse -mmmx` is generally not safe. It's an optimisation analagous to -ffast-math, in that programs that are expecting 80-bit results may be confused (sse can only do 64-bit precision math). -mfpmath=sse is only the default on x86_64, not on x86. (James Harlow)

`-funrollloop` will give you a bigger executable that may be a tad faster

`-O2 -O3` Various grades of optimalization. O3 is recommended for most CPUs. NOTE: It's the letter O, not the number 0

`-Os` This makes the executables as small as possible, but does not optimize for speed.

You may want to read

Intel 386 and AMD x86-64 Options in the GCC 3.2 online docs.

Merk at hvis du bruker `-fPIC -pie -fforce-addr -fstack-protector-all -fomit-frame-pointer` sе vil du miste ebx registeret med PIC, men du fеr tilbake et annet register ved е bruke fomit-frame-pointer.

1.2. How do I set these flags?
Check what version of gcc you are using and what kind of CPU you have.

To check what version of gcc you have installed:

--- gcc-version

To check what CPU you have installed:

--- cat /proc/cpuinfo

On Gentoo Linux, these flags are set system-wide in /etc/make.conf like this (example for Athlon XP):

Example /etc/make.conf settings:

--- CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" CXXFLAGS="---{CFLAGS**" ---

On other systems, you can export these variables in one of your shell scripts.

To set the compiler flags in a login-script, add something like:

--- export CHOST="i686-pc-linux-gnu" export CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" export CXXFLAGS="${CFLAGS**" ---

Check Safe compiler flags to use for gcc 3.x to find the correct flags for your CPU-type.

2. using ccache for faster compiling using cached gcc results.
ccache stores all gcc cacluations and reuses the results in later compilations, giving a signifficant speed increase.

2.1. Using with Gentoo Linux
emerge ccache
Add ccache to FEATURES in /etc/make.conf
Optionally, set CCACHE_SIZE in /etc/make.conf (default is 2 gb)
3. distcc for faster compiling using slaves in a network
distcc is a program to distribute compilation of C code across several machines on a network.

You will find all you need to know at the distcc documentation page

3.1. Using distcc on Gentoo linux
Install distcc with:

--- emerge distcc

Edit etc/make.conf, set DISTCC_HOSTS="localhost host1 host2 etc" and add distcc to FEATURES= on clients.

Start distcc on all slaves/servers with

--- /etc/inid.t/distcc start

or make it start at boot with

--- rc-update add distcc default

Some facts

You can use distcc with TCP (make sure your firewall is not blocking)
You do not need the same headers, libraries or even the same version of gcc on all the boxes.
You can use distcc with Windows boxes using cygwin.
Distcc is reported to work great over the internet with up to 10 ms latency. With 30 ms or more between the boxes distcc becomes less usefull, but this also depends on the speed and load of the boxes in question.
4. Related links
More information on compiler optimization:

freehackers.org: Safe flags to use for gentoo-1.4
freehackers.org: Experimental flags to use for gentoo-1.4
freshmeat.net: GCC Myths and Facts
Intel 386 and AMD x86-64 Options (GCC 3.2 online docs.)
GCC home page

----------------------------------------------------------------
Что каксается компонентов системы которые надо перекомпилировать с оптимизацией это: ядро, X сервер, qt base,
может ещё само KDE, что нибудь ещё;

Последний раз редактировалось Jacob; 04.11.2007 в 03:25..
  Ответить с цитированием
 

Старый 04.11.2007, 10:12   #8
Пользователь
 
Аватар для gcc
 
gcc вне форума
Регистрация: 05.09.2007
Адрес: Стерлитамак
Сообщений: 249
Отправить сообщение для gcc с помощью ICQ
По умолчанию

Это понятно, скорее сколько это даст прироста???
__________________
  Ответить с цитированием
 

Старый 08.11.2007, 12:12   #9
Пользователь
 
dees вне форума
Регистрация: 15.04.2006
Сообщений: 130
По умолчанию

Цитата:
Сидеть с Core2Duo, когда весь софт скомпилен под 486 камень, это довольно забавно, нет?
В таком случае нужно не пересобирать ядро, а переходить на 64-битный дистрибутив.

И быть готовым к проблемам со сторонними программами.
Многие программы, распространяемые в бинарном виде идут только в версии для i386 (например Skype). Соответсвенно для них потребуется тянуть 32-битные версии библиотек, от которых они зависят.

Flash-плагин для браузера придется устанавливать через специальный адаптер для 32-битных плагинов, fglrx под amd64 глючнее 32-битного, хотя казалось бы, куда уж больше. ну и т.д.

Wine пока официально не поддерживает amd64-архитектуру, официальное решение - делать chroot с 32-битными библиотеками.
  Ответить с цитированием
 

Старый 08.11.2007, 22:22   #10
Старожил форума
 
Аватар для weblomaster
 
weblomaster вне форума
Регистрация: 06.05.2006
Адрес: Yф@
Сообщений: 2,211
Отправить сообщение для weblomaster с помощью ICQ
По умолчанию

Пересборка ядра очень помогает: особенно если выкинуть всё "ненужное", я например повысил частоту системного таймера с 250 до 1000 герц и указал настройки для реалтайма. В результате "на глаз" скорость системы (точнее время отклика) заметно выросло: даже менюшки стали рисоватся быстрее и исчезли заикания амарока при мягком (с наложением концовки одной песни на начало другой) переходе
__________________
Мне пророчили с детства службу точным наукам
Теперь я ощущаю тягу только к плану и сукам (с) Шым
  Ответить с цитированием
 

Старый 09.11.2007, 08:09   #11
Пользователь
 
Аватар для pipp
 
pipp вне форума
Регистрация: 02.08.2007
Адрес: Уфа
Сообщений: 102
По умолчанию

а есть литература, с пояснениями что есть в ядре, которая поможет определиться, что нужно, а что нет?
__________________
634 MHz | 194 Mb | 128 Mb | 40 Gb
Vector Linux
  Ответить с цитированием
 

Старый 09.11.2007, 15:46   #12
Местный
 
Аватар для Coy
 
Coy вне форума
Регистрация: 04.11.2006
Адрес: Нефтекамск
Сообщений: 620
По умолчанию

на форуме где-то выкладывали
__________________
My Brute - Boogy Boy
My Brute - HeroVata
  Ответить с цитированием
 

Старый 09.11.2007, 17:32   #13
Местный
 
Аватар для Marlboro
 
Marlboro вне форума
Регистрация: 11.08.2006
Сообщений: 713
По умолчанию

Цитата:
Сообщение от weblomaster Посмотреть сообщение
Если меньше 4 гигов оперативки
Винда имелась в виду?
__________________
Черти внимательно осмотрели мою душу, затем вежливо вернули ее и побежали мыть руки
  Ответить с цитированием
 

Старый 10.11.2007, 15:29   #14
Старожил форума
 
Аватар для weblomaster
 
weblomaster вне форума
Регистрация: 06.05.2006
Адрес: Yф@
Сообщений: 2,211
Отправить сообщение для weblomaster с помощью ICQ
По умолчанию

Цитата:
Сообщение от Marlboro Посмотреть сообщение
Винда имелась в виду?
Ну линукс может и 64 гига оперативки в 32-х битном режиме использовать, но так переключение между страницами сравнительно медленно происходит так что надо решать в каждом конкретном индивидуальном случае. Домашнему компу 64 бита пока не нужны
__________________
Мне пророчили с детства службу точным наукам
Теперь я ощущаю тягу только к плану и сукам (с) Шым
  Ответить с цитированием
 
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новое и старое кино. Делимся впечатлениями после просмотра. Cross Кино и TV 688 28.01.2019 02:41
Кто прыгал с парашютом делитесь впечатлениями DROGON Флейм 27 16.08.2009 17:05
Делимся книгами studiozus Библиотека 72 10.10.2008 22:22
Новый офф.. делимся впечатлениями Yoshimidzo[G_A] GTA San Andreas 60 11.07.2007 09:59
Компиляция x.org Biolim Linux 0 25.11.2006 10:45



Текущее время: 17:46. Часовой пояс GMT +3.


vBulletin skin developed by: eXtremepixels
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
top of page