# Zbyt wolna kompilacja

## manwe_

Witam, stawiam system na Dell'u D400, całość idzie prawie bezproblemowo [poza 8bit na fbdev, straconymi 2h żeby uruchomić wifi no i tym gcc]. No ale najpierw gcc, po prostu kompilacja w pewnym momencie zawisa i nie ma ochoty na kontynuację. Żadnych błędów nie wywala.

```
# emerge --info

Portage 2.1.2_rc2-r2 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.5-r0, 2.6.18-gentoo-r3-syth-v1r1 i686)

=================================================================

System uname: 2.6.18-gentoo-r3-syth-v1r1 i686 Intel(R) Pentium(R) M processor 1400MHz

Gentoo Base System version 1.12.6

Last Sync: Sun, 26 Nov 2006 13:50:02 +0000

dev-java/java-config: 1.3.7, 2.0.30

dev-lang/python:     2.4.4

dev-python/pycrypto: 2.0.1-r5

sys-apps/sandbox:    1.2.18.1

sys-devel/autoconf:  2.13, 2.61

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.17

sys-devel/gcc-config: 1.3.14

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.17-r1

ACCEPT_KEYWORDS="x86 ~x86"

AUTOCLEAN="yes"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/splash /etc/terminfo"

CXXFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks metadata-transfer moo parallel-fetch sandbox sfperms strict"

GENTOO_MIRRORS="http://gentoo.po.opole.pl"

LANG="pl_PL"

LC_ALL="pl_PL"

LDFLAGS="-Wl,--as-needed,-O1"

LINGUAS="pl"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/portages/manwe"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="x86 X a52 aac aalib acpi aiglx alsa apache2 apm bash-completion bcmath berkdb bluetooth browserplugin bzip2 calendar cdinstall cdr crypt cups directfb dvd dvdread elibc_glibc encode fbcon ffmpeg ftp gd-exteral gif glut gpm gtk gtk2 ieee1394 input_devices_keyboard input_devices_mouse input_devices_synaptics irda jabber javascript jpeg kernel_linux libwww linguas_pl lm_sensors mmx mozilla mp3 mpeg3 mysql ncurses nls nptl nptlonly nsplugin ogg opengl pam pam_console pcmcia pda pdf perl php png qt qt4 samba soap sse sse2 ssl tiff truetype truetype-fonts usb userland_GNU video_cards_fbdev video_cards_i810 vim wifi win32codecs with-x wmf xcomposite xinerama xorg xosd xv xvid"

Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS
```

Zatrzymuje się w raczej losowych miejscach stage 2 [kompilacja za pomocą xgcc], teraz było to: 

```
/bin/sh /var/tmp/portage/sys-devel/gcc-4.1.1-r2/work/gcc-4.1.1/gcc/../move-if-ch

ange tmp-attrtab.c insn-attrtab.c

insn-attrtab.c is unchanged

echo timestamp > s-attrtab

stage1/xgcc -Bstage1/ -B/usr/i686-pc-linux-gnu/bin/   -march=pentium-m -O2 -pipe

 -fprofile-use -freorder-blocks-and-partition -DIN_GCC   -W -Wall -Wwrite-string

s -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadi

c-macros -Wold-style-definition -Wmissing-format-attribute     -DHAVE_CONFIG_H -

I. -I. -I/var/tmp/portage/sys-devel/gcc-4.1.1-r2/work/gcc-4.1.1/gcc -I/var/tmp/p

ortage/sys-devel/gcc-4.1.1-r2/work/gcc-4.1.1/gcc/. -I/var/tmp/portage/sys-devel/

gcc-4.1.1-r2/work/gcc-4.1.1/gcc/../include -I/var/tmp/portage/sys-devel/gcc-4.1.

1-r2/work/gcc-4.1.1/gcc/../libcpp/include     -c insn-attrtab.c \

          -o insn-attrtab.o
```

Narazie jadę na gcc z paczki stage3, ale upgrade i tak trzeba zrobić w końcu.Last edited by manwe_ on Tue Nov 28, 2006 8:58 am; edited 1 time in total

----------

## martin.k

Może masz problemy z chłodzeniem lapka ??? Bo nic innego mi nie przychodzi do głowy.

----------

## manwe_

Pentium M jest fajny, teraz kompilując jednocześnie qt4 i php5 ma 42*C. Poza tym postawiłem już sporo systemu [włącznie z X'ami i gtk+, sam glibc robił się ~3h], więc to coś z gcc.

----------

## mbar

Nie, nie, nie nie! Nic złego się nie dzieje, i kompilacja gcc nie "wisi"  :Smile: 

U siebie nie raz zaobserwowałem długie stanie na linijce z "insn-attrtab.o". Zależy to chyba od ilości pamięci RAM, na kompie z 256 MB i procesorze Sempron 3100+ kompilacja stała tu chyba z 15 minut. Jak rozszerzyłem pamięć do 512 to ten fragment kompiluje się nieco szybciej, ale nadal przez pewien czas stoi. Polecam usiąść i przeczekać.

----------

## argasek

Albo pozbyć się -pipe, które teoretycznie powinno być szybsze, ale kto wie  :Wink: 

----------

## manwe_

OK, rzeczywiście nie zawisło, to problem tego, że ... wszystko kompiluje się zbyt wolno, albo to moje wrażenie. Normalnie siedzę na Turionie 1.8GHz, kompilacja firefox'a to ~58 minut, glibc - 85 min, qt4 - 100 min. W tym Dell'u jest Pentium M 1.4GHz, ale cały czas prowadzę dwie kompilacje równolegle więc czasy mają prawo być dłuższe, ale nie... firefox - 6h42, qt4 - 6h56, gcc4 - 10h48 (!), glibc - 3h40. DMA dysku jest [pierwsze co mi przyszło do głowy], RAM przeleciałem memtest86 [512 MB] - też ok... nie mam pojęcia gdzie szukać. Sprawdzę jeszcze bez tego pipe'a.

----------

## mbar

Może cpufreq ustawił najniższą częstotliwość zegara i nie podnosi jej mimo obciążenia procesora? To by dawało 600 MHz, co się mniej więcej zgadza z czasami kompilacji.

Zrób "emerge cpufrequtils" i podaj cpufrequtils-info.

----------

## manwe_

To też sprawdzałem, jest 1.4G i governon userspace, więc nic nie zmieni bez mojego widzi-mi-się.

```
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006

Report errors and bugs to linux@brodo.de, please.

analyzing CPU 0:

  driver: centrino

  CPUs which need to switch frequency at the same time: 0

  hardware limits: 600 MHz - 1.40 GHz

  available frequency steps: 1.40 GHz, 1.40 GHz, 1.40 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz

  available cpufreq governors: conservative, ondemand, powersave, userspace, performance

  current policy: frequency should be within 600 MHz and 1.40 GHz.

                  The governor "userspace" may decide which speed to use

                  within this range.

  current CPU frequency is 1.40 GHz.
```

Hmmmm, update:

```
 /proc/acpi/processor/CPU0 # cat limit throttling 

active limit:            P0:T0

user limit:              P0:T0

thermal limit:           P0:T0

state count:             8

active state:            T6

states:

    T0:                  00%

    T1:                  12%

    T2:                  25%

    T3:                  37%

    T4:                  50%

    T5:                  62%

   *T6:                  75%

    T7:                  87%

 /proc/acpi/processor/CPU0 # echo -n "0:0" > limit 

 /proc/acpi/processor/CPU0 # cat limit throttling 

active limit:            P0:T0

user limit:              P0:T0

thermal limit:           P0:T0

state count:             8

active state:            T6

states:

    T0:                  00%

    T1:                  12%

    T2:                  25%

    T3:                  37%

    T4:                  50%

    T5:                  62%

   *T6:                  75%

    T7:                  87%

```

Update 2: sprawdzilem pipe'a, roznica na poziomie bledu pomiaru:

```
# genlop -t sylpheed-claws

 * mail-client/sylpheed-claws

     Tue Nov 28 11:12:43 2006 >>> mail-client/sylpheed-claws-2.6.0

       merge time: 19 minutes and 6 seconds.

     Tue Nov 28 11:32:23 2006 >>> mail-client/sylpheed-claws-2.6.0

       merge time: 19 minutes and 21 seconds.
```

----------

## scyld

 *manwe_ wrote:*   

> Hmmmm, update:
> 
> ```
>  /proc/acpi/processor/CPU0 # cat limit throttling 
> 
> ...

 

Wygląda na to, że się procesor przegrzewa. Zobacz czy masz w logach albo w dmesgu, coś w stylu:

```
CPU0: Temperature above threshold

CPU0: Running in modulated clock mode
```

Normalnie powinno być T0 czego nie trudno się domyśleć.

----------

## manwe_

```
# dmesg | grep -iE "(cpu|temperature|clock)"

Time: tsc clocksource has been installed.

Time: acpi_pm clocksource has been installed.

# cat /proc/acpi/thermal_zone/THM/temperature

temperature:             41 C

```

----------

## mbar

no to teraz pokaż jakie masz opcje acpi w kernelu

----------

## manwe_

Może coś być niedopieszczone, jeszcze nie miałem zbytnio czasu dla jajka. 

```
# grep -i acpi .config | grep -vE '^#'

CONFIG_ACPI=y

CONFIG_ACPI_SLEEP=y

CONFIG_ACPI_SLEEP_PROC_FS=y

CONFIG_ACPI_SLEEP_PROC_SLEEP=y

CONFIG_ACPI_AC=y

CONFIG_ACPI_BATTERY=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=y

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=y

CONFIG_ACPI_THERMAL=y

CONFIG_ACPI_BLACKLIST_YEAR=0

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_SYSTEM=y

CONFIG_X86_ACPI_CPUFREQ=y

CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y

CONFIG_PNPACPI=y

```

----------

## Zolwik

Siemka!

Nie wiem czy to jest najlepszy pomysł dopisywać się tutaj, czy lepiej było założyć nowy temat, no ale jak co to trudno, zrobiłem jak zrobiłem, i wybaczcie, ale to jest mój pierwszy post

Problem mam jak wyżej, tylko że u mnie to chyba coś innego jest przyczyną. To już moja któraś z koleji instalacja z gentoo, i nigdy nie było tak, że pakiet, który mi się zawsze kompilował z 15min, to teraz robi to samo w 2h, albo w ogóle staje. Jak już się zatrzyma, to dysk włącza się na pełne obroty, ja nie wiem, jakby chciał cały system przekopiować... 

Nowością w tej instalacji jest to, że stawiam teraz Xen-a, więc jest inne jądro, troche inaczej wygląda grub.conf, itp.

Nie wiem czy to ma coś wspólnego ze spowolnieniem kompilacji, ale wole to tu umieścić: otóż, kiedy ładuje się jajko, wywala mi coś takiego:

```

***************************************************************  ***************************************************************

** WARNING: Currently emulating unsupported memory accesses  **

**          in /lib/tls glibc libraries. The emulation is    **

**          slow. To ensure full performance you should      **

**          add -mno-tls-direct-seg-refs to your CFLAGS and  **

**          re-emerge glibc and any staticly linked programs **

**          or emerge -e world to catch everything.          **

** Offending process: modprobe (pid=878)                     **

***************************************************************

***************************************************************

```

Podaje również emerge --info:

```

Portage 2.1.4_rc10 (default-linux/x86/2007.0/desktop, gcc-4.2.2, glibc-2.7-r1, 2.6.20-xen-r60 i686)

=================================================================

System uname: 2.6.20-xen-r60 i686 AMD Athlon(tm) XP 2600+

Timestamp of tree: Fri, 14 Dec 2007 14:00:01 +0000

ccache version 2.4 [enabled]

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.1.3

dev-lang/python:     2.5.1-r4

dev-util/ccache:     2.4-r7

sys-apps/baselayout: 1.12.10-r5

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.5, 1.7.9-r1, 1.9.6-r2, 1.10

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.24

virtual/os-headers:  2.6.23-r2

ACCEPT_KEYWORDS="x86 ~x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=athlon-xp -mno-tls-direct-seg-refs"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"

CXXFLAGS="-O2 -march=athlon-xp -mno-tls-direct-seg-refs"

DISTDIR="/usr/portage/distfiles"

FEATURES="ccache distlocks loadpolicy metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LANG="pl_PL.UTF-8"

LC_ALL="pl_PL.UTF-8"

LINGUAS="pl en"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="3dnow 3dnowext 7zip X Xaw3d a52 aac aalib accessibility acl acpi additions aiglx aim akode alias alisp allegro alsa amarok amd amuled animgif ao apache2 aqua_theme arts artworkextra asf async audiofile auth automount autoreplace bash-completion beagle berkdb big-tables binary-drivers binfilter bitmap-fonts bittorrent bjtools bl bonusscripts branding bzip2 cairo calendar caps ccache cdaudio cdda cddb cdinstall cdio cdparanoia cdr cdrom cdsound chroot cli clucene colordiff config_wizard connectionstatus contactnotes contentcache cpudetection cracklib crypt css ctype cups curl cursors cvs cvsgraph dbus depth32 device-mapper dga divx dnd dri dts dv dvb dvd dvdnav dvdr dvdread editor eds emboss emerald emovix encode esd evo exif expat extra-cardsets extraicons extramodules extras fam fat fbcon fbsplash fdftk ffmpeg firefox flac flash font-server foomaticdb ftp fusion gadu gb gd geoip gif gimp gimpprint glitz glut gnome gnome-print gnomecanvas gnomedb gnustep gpm groupwise gstreamer gtk gtkhtml gzip hal highlight history ibmacpi iconv icq icu id3 ieee1394 ifp imagemagick inifile ipv6 irc isdnlog jabber java javascript joystick jpeg jpeg2k kde kdecards kdgraphics kdm kerberos lame langpacks latex lcms ldap libcaca libnotify lirc lm_sensors logitech-mouse logrotate lvm2 lzo mad maps md5sum midi mikmod mime mmap mmx mmxext mng modkit mods mono mozilla mp3 mp4 mpeg mpeg2 mplayer mpm-worker msn mudflap multiuser music mysql nas ncurses netboot netcdf netmeeting nls nntp nowlistening nptl nptlonly ntfs ntp odk office ogg openal opengl openmp openntpd openssh openssl osc oscar oss p2p pam pcre pdf perl php pixusip4100 png pnm portage posix postscript ppds pppd pulseaudio python qt3 qt3support qt4 quicktime radio rar rdesktop readline real realmedia remix replytolist roe rss rtc samba sametime scanner screen sdl sdl-image sdl-sound sdlaudio seamonkey sensord server session sftp slang sms smtp sockets sound sounds source speex spell spl sse ssl statistics subversion svg symlink sysfs syslog sysvipc tcpd tcpwrapper texteffect textures threads threadsafe thunderbird tidy tiff tk tlen toolbar tools tracker translator trayicon truetype truetype-fonts type1 type1-fonts unicode unzip upnp usb vcd videos vidix vim vim-with-x visualization voice vorbis wav webpresence win32codecs winpopup wxwindows x86 xface xforms xfs xhtml xinerama xml xmlreader xmlwriter xorg xosd xscreensaver xsl xslt xterm xv xvid xvmc yahoo zeroconf zip zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="pl en" USERLAND="GNU" VIDEO_CARDS="radeon"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

jak widać mam włączone to -mno-tls-direct-seg-refs, miałem jeszcze -fomit-frame-pointer i -pipe, ale chwilowo wywaliłem, z nadzieją że od tego może jednak coś przyśpieszy.

Też nie wiem czy to ma coś wspólnego, ale musiałem usunąć użytkownika portage i stworzyć go na nowo, bo nie mogłem się na niego wbić przez su, i nie działao mi user-fetach. Teraz przez su moge się w niego wbić, user-fetach nie działa dalej...

Jakieś pomysły ktoś ma?

EDIT: aha, zapomniałem dodać że -mno-tls-direct-seg-refs mam włączone od samego początku (tzn od rozpakowania stage3)

----------

## unK

 *Zolwik wrote:*   

> EDIT: aha, zapomniałem dodać że -mno-tls-direct-seg-refs mam włączone od samego początku (tzn od rozpakowania stage3)

 

A przekompilowałeś z tą flagą glibc/zrobiłeś emerge -e world?

----------

## Zolwik

Tak, tylko gcc-3.3.6-r4 nie moge skompilowac.

Ale to chyba nie tu jest problem:

Zmienilem jajko na tuxonice-sources, co wylaczylo mi xena, ale kompilacja przyspieszyla do wmiare normalnych predkosci. czyli problem jest gdzies w jajku.

Oczywiscie jak dla mnie to porblem nie jest rozwiazany. Ja chce Xen-a!!

----------

## Arfrever

 *Zolwik wrote:*   

> gcc-3.3.6-r4 nie moge skompilowac.

 

```
emerge -1 sys-libs/libstdc++-v3
```

Perduodu linkėjimus

Arfrever

----------

