# nach emerge sync schlägt Compilierung der glibc fehl

## LinuxTom

Hallo Allerseits,

ich bin am Ende. Ich habe ein "emerge sync" gemacht und danach ein "emerge -ND world" dabei sollte auch meine glibc geupdatet werden:

```
[ebuild     U ] sys-libs/glibc-2.3.6-r3 [2.3.5-r3]
```

Aber es bricht immer mit

```
x86_64-pc-linux-gnu-gcc ../sysdeps/generic/errno-loc.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -march=k8 -pipe      -I../include -I. -I/var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu -I.. -I../libio -I../nptl -I/var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl -I../sysdeps/x86_64/elf -I../nptl/sysdeps/unix/sysv/linux/x86_64 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../nptl/sysdeps/x86_64 -I../libidn/sysdeps/unix -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/fpu -I../sysdeps/x86_64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.5/include -isystem /usr/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -DHAVE_INITFINI -o /var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/errno-loc.o -MD -MP -MF /var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/errno-loc.o.dt -MT /var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/errno-loc.o

../sysdeps/generic/libc-tls.c: In function `__libc_setup_tls':

../sysdeps/generic/libc-tls.c:198: error: `__NR_arch_prctl' undeclared (first use in this function)

../sysdeps/generic/libc-tls.c:198: error: (Each undeclared identifier is reported only once

../sysdeps/generic/libc-tls.c:198: error: for each function it appears in.)

make[2]: *** [/var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu/libc-tls.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[2]: Leaving directory `/var/tmp/portage/glibc-2.3.6-r3/work/glibc-2.3.6/csu'

make[1]: *** [csu/subdir_lib] Error 2

make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.6-r3/work/glibc-2.3.6'

make: *** [all] Error 2
```

ab.

Wer weiß, was ich da falsch mache?

```
Portage 2.0.54-r2 (default-linux/amd64/2006.0, gcc-3.4.5, glibc-2.3.5-r3, 2.6.15-gentoo-r7 x86_64)

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

System uname: 2.6.15-gentoo-r7 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+

Gentoo Base System version 1.6.14

distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]

dev-lang/python:     2.4.2

dev-python/pycrypto: [Not Present]

dev-util/ccache:     [Not Present]

dev-util/confcache:  [Not Present]

sys-apps/sandbox:    1.2.17

sys-devel/autoconf:  2.13, 2.59-r7

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

sys-devel/binutils:  2.16.1

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.11-r2

ACCEPT_KEYWORDS="amd64"

AUTOCLEAN="yes"

CBUILD="x86_64-pc-linux-gnu"

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

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/lib/X11/xkb /usr/lib/fax /usr/lib64/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/spool/fax/etc"

CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"

CXXFLAGS="-march=k8 -O2 -pipe -msse3"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks sandbox sfperms strict"

GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.gentoo.mesh-solutions.com/gentoo/ http://pandemonium.tiscali.de/pub/gentoo/ ftp://pandemonium.tiscali.de/pub/gentoo/ ftp://ftp.rz.tu-bs.de/pub/mirror/ftp.gentoo.org/gentoo-distfiles/ http://ftp.rz.tu-bs.de/pub/mirror/ftp.gentoo.org/gentoo/ http://gentoo.intergenia.de "

LANG="de_DE@euro"

LINGUAS="de en_GB"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

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

USE="amd64 3ds 64bit 7zip X X509 Xaw3d a52 aac aalib abook acl acpi activefilter ada adns adsl aim aimextras aliaschain allegro alsa amd amr amrr amuled ao apm applet aqua_theme ares arts artworkextra async athena atk audacious audiofile authfile authlib automount avalon avantgo avi ax25 background bash-completion bashlogger bdf beagle berkdb bind-mysql binfilter bitmap-fonts bittorrent bl bluetooth bonobo bzip2 c3p0 cacheemu cairo calendar cdb cdda cddb cdinstall cdio cdparanoia cdr cdrom cgi checkpath chm chroot clamav clearcase clearpasswd cli clock-screen config_wizard cracklib crypt crypto_openssl css csv cups curl cvs dbase dbcp devfs26 devmap dga dhcp dict dillo dio directfb disk-cache djbfft dlz dmi dmx dnd dnsdb dpms dri dsml dssi dts dv dvb dvd dvdr dvdread dvi dxr3 ecc eds emacs emacs-w3 emboss emoticon encode enscript epson escreen esd exif expat extensions fam fame fax faxonly fbcon fbdev fbsplash ffmpeg fftw fix-connected-rt flac flash flatfile follow-xff font-server fontconfig foomaticdb fortran fpx fuse gd gdbm geldkarte general geometry gif gimp gimpprint glut glx gmp gnokii gnome gnome-print gnuplot gphoto2 gpm grammar gs gstreamer gtalk gtk gtk2 gtkhtml guile gzip hbci hddtemp hfs high-ints hpn html http httpd icp icq id3 idea idn ieee1394 image imagemagick imap imlib infopipe inifile inline innodb input_devices_calcomp input_devices_joystick input_devices_keyboard input_devices_magictouch input_devices_microtouch input_devices_mouse input_devices_mutouch input_devices_penmount input_devices_summa input_devices_vmmouse input_devices_wacom ipod ipv6 irmc isdnlog j2ee jabber jack java javascript jboss jce jcs jfs jmx john joystick jp2 jpeg jpeg2k kcal kde kexi kipi lame latex lcms ldapsam libcaca libnotify libsexy libwww lirc lm_sensors log4j logitech-mouse logrotate logwatch lzo lzw lzw-tiff mad math mbox mcve md5sum mem-cache memcache milter mime mimencode mixer mjpeg mkconfig mng motif mouse mozcalendar mozdevelop mozilla mozsvg mp3 mp4 mp4live mpd-mad mpeg mpeg2 mplayer msession msn mule multi-tty multipath multiprocess musepack mysql mythtv nas ncurses net network neural new-login nfs njb nls nntp nptl nptlonly nsplugin ntfs nvidia nvram oav ogg openal opengl openssl oscar pam pango pascal patch pcre pdf pdflib perl php player png pnp pop pop3d portaudio pppd proxool python pyx qt quicktime quotas quotes rar rc5 rdesktop readline recursor reflection reiser4 reiserfs remote rle rplay rpm samba sblive scanner scp screen sdl sensord server session sftp sid slang slp smartcard smarty smp sms sndfile snmp softfax soundtouch sox speech speedo speex spell spl sql sse-filters ssl subp subtitles subversion svgz swat sysfs syslog tcltk tcpd tcpmd5 tetex theora threads tiff toolbar truetype truetype-fonts type1 type1-fonts ucs2 udev uim underscores unicode usb v4l v4l2 vcd vcdimager vhosts video_cards_apm video_cards_ark video_cards_ati video_cards_chips video_cards_cirrus video_cards_cyrix video_cards_dummy video_cards_fbdev video_cards_fglrx video_cards_glint video_cards_i128 video_cards_i810 video_cards_mga video_cards_neomagic video_cards_none video_cards_nv video_cards_nvidia video_cards_rendition video_cards_s3 video_cards_s3virge video_cards_savage video_cards_siliconmotion video_cards_sis video_cards_sisusb video_cards_tdfx video_cards_tga video_cards_trident video_cards_tseng video_cards_v4l video_cards_vesa video_cards_vga video_cards_via video_cards_vmware video_cards_voodoo virus-scan visualization vlm vnc voice voodoo1 voodoo2 voodoo3 voodoo5 vorbis wifi winbind withsamplescripts wma wma123 wmf wordperfect wv wxgtk1 wxwindows x11vnc x264 xanim xbase xchat xchatdccserver xcomposite xemacs xext xface xfs xft xgetdefault xine xinerama xinetd xlockrc xml xml2 xmlreader xmlwriter xmms xorg xpm xprint xscreensaver xv xvid xvmc yahoo yv12 zapnet zapras zeroconf zip zlib zvbi linguas_de linguas_en_GB userland_GNU kernel_linux elibc_glibc"

Unset:  CTARGET, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTAGE_RSYNC_OPTS

```

----------

## LinuxTom

Hat keiner einen Tipp für mich? Langsam wird das Bein dicke. Schon 2 Monate, ohne dass ich vernünftig emergen kann.  :Sad: 

----------

## NightDragon

Ich würde mal folgendes machen:

```

cd /usr/portage

rm * -rf

rm /var/tmp/portage/* -rf

cd ../

emerge --sync && fixpackages

```

Und dann kannst Du nochmals veruschen mit

```

emerge world -Dvua

```

Ein Update durchzuführen.

----------

## LinuxTom

Wow, klingt gefährlich. Ist das eine andere Art den Rechner zu schrotten (rm -fr *)?  :Wink: 

Ok, ich probiere es einfach mal.

----------

## LinuxTom

Nö  :Sad: 

Danach funktioniert noch nicht mal mehr "emerge sync".

Weitere Vorschläge?

----------

## smg

 *LinuxTom wrote:*   

> Nö 
> 
> Danach funktioniert noch nicht mal mehr "emerge sync".
> 
> Weitere Vorschläge?

 

zum Post davor: das schrottet nur was wenn du in / bist

zu diesem Post: bitte die Fehlermeldung.

Bye.

----------

## NightDragon

Genau.

Wenn du brav in /usr/portage/ bist dann schrottest du nix.

Da drinnen sind alle Ebuilds usw... und hi und da verhängt sich portage.

deswegen alles raus und neu syncen.

Dann wird dort alles wieder "gefüllt".

Das andere ist nur eine Art Cache... vielleicht hats ja da was... deswegen dort das leeren.

----------

## LinuxTom

ier die Fehlermeldung, nachdem ich die beiden Verzeichnisse geleert habe:

```
File list size: 3720111

File list generation time: 30.005 seconds

File list transfer time: 0.000 seconds

Total bytes sent: 2788803

Total bytes received: 69237093

sent 2788803 bytes  received 69237093 bytes  123437.70 bytes/sec

total size is 136653523  speedup is 1.90

>>> Updating Portage cache:

Traceback (most recent call last):

  File "/usr/bin/emerge", line 2959, in ?

    conf = portage.config(config_profile_path=portage.settings.profile_path[:], \

TypeError: unsubscriptable object
```

Der Cache hatte sich nicht neu aufgebaut. Das Verzeichnis war noch leer. Vielleicht muss ich ja noch einen Befehl mehr geben?

Nach dem zurückspielen der altern Verzeichnisse das alte Bild wieder.

Das emerge ist schon aktuell:

```
[ebuild   R   ] sys-apps/portage-2.1  USE="-build -doc" LINGUAS="-pl" 0 kB
```

----------

## NightDragon

Da stimmt was nicht.

Er muss mit 

 *Quote:*   

> emerge --sync

 (noch gültig ist auch emerge sync)

Auf jedenfall deinen Baum neu aufbauen. Wenn er das nicht macht, dann stimmt was mit portage nicht.

----------

## LinuxTom

Nach einem

```
emerge --regen
```

funktioniert ein anschließendes

```
emerge --sync
```

auch wieder ohne Probleme. Danach ist der Cache wieder da.

Ob es auch was hilft, lasse ich euch wissen. *hoff*

----------

## LinuxTom

Es funktioniert einfach nicht. Kann mir mal bitte jemand seine USE-Flags für seine glibc nennen? AMD64 natürlich.

----------

## NightDragon

Gib mir bitte mal die Ausgabe von 

```
ls -ld /usr/portage
```

.

 *Quote:*   

> 
> 
> Calculating dependencies ... done!
> 
> [ebuild   R   ] sys-libs/glibc-2.3.6-r3  USE="nls nptl pic userlocales -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthreads-tls -nptlonly -profile" 16,186 kB
> ...

 

Also so schauen meine USE-Flags aus.

Sag hab ich das richtig verstanden? Du kannst kein emerge --sync machen, sprich der Baum bleibt leer?

----------

## LinuxTom

 *NightDragon wrote:*   

> Gib mir bitte mal die Ausgabe von 
> 
> ```
> ls -ld /usr/portage
> ```
> ...

 

```
drwxr-xr-x 155 root root 4600 17. Jun 14:20 /usr/portage
```

 *Quote:*   

> 
> 
> Calculating dependencies ... done!
> 
> [ebuild   R   ] sys-libs/glibc-2.3.6-r3  USE="nls nptl pic userlocales -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthreads-tls -nptlonly -profile" 16,186 kB
> ...

 

Meine:

```
[ebuild     U ] sys-libs/glibc-2.3.6-r3 [2.3.5-r3] USE="linuxthreads-tls* nls nptl nptlonly* -build -erandom -glibc-compat20 -glibc-omitfp -hardened -pic -profile -userlocales*" 0 kB
```

Aber auch ohne "linuxthreads-tls" das gleiche negative Ergebnis.

Jetzt versuche ich mal Deine:

```
[ebuild     U ] sys-libs/glibc-2.3.6-r3 [2.3.5-r3] USE="nls nptl userlocales -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthreads-tls -nptlonly -pic -profile" 0 kB
```

 *Quote:*   

> Sag hab ich das richtig verstanden? Du kannst kein emerge --sync machen, sprich der Baum bleibt leer?

 

Nein, das hat immer funktioniert, nur der Cache wurde nicht neu aufgebaut. Das geht jedoch mit

```
emerge --regen
```

Siehe auch mein Posting 2 vorher.

----------

## LinuxTom

HIIILLLLFFFFEEEEEEE!!!!!!!!

```
x86_64-pc-linux-gnu-gcc ../sysdeps/generic/libc-tls.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -march=k8 -pipe      -I../include -I. -I/var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-linuxthreads/csu -I.. -I../libio  -I/var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-linuxthreads -I../sysdeps/x86_64/elf -I../linuxthreads/sysdeps/unix/sysv/linux/x86_64 -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/x86_64 -I../libidn/sysdeps/unix -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/fpu -I../sysdeps/x86_64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.5/include -isystem /usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -DHAVE_INITFINI -o /var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-linuxthreads/csu/libc-tls.o -MD -MP -MF /var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-linuxthreads/csu/libc-tls.o.dt -MT /var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-linuxthreads/csu/libc-tls.o

../sysdeps/generic/libc-tls.c: In function `__libc_setup_tls':

../sysdeps/generic/libc-tls.c:198: error: `__NR_arch_prctl' undeclared (first use in this function)

../sysdeps/generic/libc-tls.c:198: error: (Each undeclared identifier is reported only once

../sysdeps/generic/libc-tls.c:198: error: for each function it appears in.)

make[2]: *** [/var/tmp/portage/glibc-2.3.6-r3/work/build-amd64-x86_64-pc-linux-gnu-linuxthreads/csu/libc-tls.o] Error 1

make[2]: Leaving directory `/var/tmp/portage/glibc-2.3.6-r3/work/glibc-2.3.6/csu'

make[1]: *** [csu/subdir_lib] Error 2

make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.6-r3/work/glibc-2.3.6'

make: *** [all] Error 2

!!! ERROR: sys-libs/glibc-2.3.6-r3 failed.

Call stack:

  ebuild.sh, line 1539:   Called dyn_compile

  ebuild.sh, line 939:   Called src_compile

  glibc-2.3.6-r3.ebuild, line 1227:   Called src_compile

  glibc-2.3.6-r3.ebuild, line 1238:   Called toolchain-glibc_src_compile

  glibc-2.3.6-r3.ebuild, line 254:   Called die

!!! make for amd64 failed

!!! If you need support, post the topmost build error, and the call stack if relevant.

```

Was soll ich nur noch mit diesem "tls" machen?

----------

## schachti

Versuch es mal mit den USE flags "nptl nptlonly -linuxthreads-tls".

----------

## LinuxTom

Hab ich auch schon. Gleiches Ergebnis.  :Sad: 

Ich probiere es jetzt mit allen Kombinationen durch. Aber die Ursache scheint wo anderes zu liegen. Ich weiß nur noch nicht wo. Wollte eigentlich das Rumschnüffeln in den Sourcen nicht wieder anfangen. Aus Zeitmangel. Mir wird wohl nichts anderes übrig bleiben.

Die anderen AMD64'ler haben offensichtlich damit keine Probleme. Vielleicht ist es ja die Kombination der USE-Flags, die ich im ersten Posting drin stehen habe?

Habe auch schon "-j1" gesetzt.

----------

## schachti

Auf der Partition, auf der /var/tmp/portage liegt, ist sicher auch genug Platz frei? Wie sehen die mount-Optionen aus?

----------

## LinuxTom

 *schachti wrote:*   

> Auf der Partition, auf der /var/tmp/portage liegt, ist sicher auch genug Platz frei?

 

Ja, 11 Giga.

 *Quote:*   

> Wie sehen die mount-Optionen aus?

 

```
/dev/vggentoo/root      /               reiserfs        noatime         0 0
```

Ich weiß jetzt zwar nicht, was das damit zu tun hat, aber ich weiß im Augenblick auch noch nicht, wofür das Sch... TLS steht.

----------

## LinuxTom

TLS:

TLS or thread local storage is implemented at a lower level. The programmer is presented with a ___thread directive that tells the compiler the variable is to be stored on a per-thread basis. This variable will behave as expected; the & operator will give the address of the thread specific variable.

----------

## LinuxTom

Vielleicht fällt ja hier jemandem etwas auf?

```
>>> Compiling source in /var/tmp/portage/glibc-2.3.6-r3/work/glibc-2.3.6 ...

 * Building multilib glibc for ABIs: x86 amd64

 *             ABI:   x86

 *          CBUILD:   x86_64-pc-linux-gnu

 *           CHOST:   x86_64-pc-linux-gnu

 *         CTARGET:   x86_64-pc-linux-gnu

 *      CBUILD_OPT:   i686-pc-linux-gnu

 *     CTARGET_OPT:   i686-pc-linux-gnu

 *              CC:

 *          CFLAGS:   -march=k8 -pipe -O2

 * Configuring GLIBC for linuxthreads with:

                --disable-dev-erandom

                --with-tls

                --with-__thread

                --enable-add-ons=linuxthreads,c_stubs,libidn

                --enable-kernel=2.4.1

                --without-selinux

                --without-cvs

                --enable-bind-now

                --build=i686-pc-linux-gnu

                --host=i686-pc-linux-gnu

                --disable-profile

                --without-gd

                --with-headers=/usr/include

                --prefix=/usr

                --mandir=/usr/share/man

                --infodir=/usr/share/info

                --libexecdir=/usr/lib/misc/glibc

```

Jetzt wieder ohne "pic" aber mit "linuxthreads-tls".

In meiner make.conf steht:

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

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"
```

----------

## NightDragon

Was ich mich frage, ist ob das okay ist:

 *Quote:*   

> --enable-kernel=2.4.1 

 

Ist das normal? Du verwendest sicher eine 2.6er Kernel oder?

----------

## LinuxTom

 *NightDragon wrote:*   

> Was ich mich frage, ist ob das okay ist:
> 
>  *Quote:*   --enable-kernel=2.4.1  
> 
> Ist das normal?

 

ich würde sagen: Weiß ich nicht? Aber das kommt, so habe ich das verstanden, von den linuxthreads.

Ich habe mal in /usr/portage/sys-libs/glibc/glibc-2.3.6-r3.ebuild nachgeschaut. Zeilen 913 bis 934:

```
        if [ "$1" == "linuxthreads" ] ; then

                if want_tls && [[ ${CTARGET} != i[45]86-* ]] ; then

                        myconf="${myconf} --with-tls"

                        if want__thread && use linuxthreads-tls ; then

                                myconf="${myconf} --with-__thread"

                        else

                                myconf="${myconf} --without-__thread"

                        fi

                else

                        myconf="${myconf} --without-tls --without-__thread"

                fi

                myconf="${myconf} --enable-add-ons=linuxthreads${ADDONS}"

                myconf="${myconf} --enable-kernel=${LT_KERNEL_VERSION}"

        elif [ "$1" == "nptl" ] ; then

                myconf="${myconf} --with-tls --with-__thread"

                myconf="${myconf} --enable-add-ons=nptl${ADDONS}"

                myconf="${myconf} --enable-kernel=${NPTL_KERNEL_VERSION}"

        else

                die "invalid pthread option"

        fi

```

 *Quote:*   

> Du verwendest sicher eine 2.6er Kernel oder?

 

ja, den linux-2.6.15-gentoo-r7.

Und mit

```
[ebuild     U ] sys-libs/glibc-2.3.6-r3 [2.3.5-r3] USE="nls nptl userlocales -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthreads-tls -nptlonly -pic -profile" 0 kB
```

Kommt folgendes:

```
 * Warning! Gentoo's GLIBC with NPTL enabled now behaves like the

 * glibc from almost every other distribution out there. This means

 * that glibc is compiled -twice-, once with linuxthreads and once

 * with nptl. The NPTL version is installed to lib/tls and is still

 * used by default. If you do not need nor want the linuxthreads

 * fallback, you can disable this behavior by adding nptlonly to

 * USE to save yourself some compile time.

 * Checking gcc for __thread support ... yes

 * Checking kernel version (>=2.6.9) ... yes

 * Checking linux-headers version (>=2.6.9) ... yes

```

```
 * Building multilib glibc for ABIs: x86 amd64

 *             ABI:   x86

 *          CBUILD:   x86_64-pc-linux-gnu

 *           CHOST:   x86_64-pc-linux-gnu

 *         CTARGET:   x86_64-pc-linux-gnu

 *      CBUILD_OPT:   i686-pc-linux-gnu

 *     CTARGET_OPT:   i686-pc-linux-gnu

 *              CC:

 *          CFLAGS:   -march=k8 -pipe -O2

 * Configuring GLIBC for linuxthreads with:

                --disable-dev-erandom

                --with-tls

                --without-__thread

                --enable-add-ons=linuxthreads,c_stubs,libidn

                --enable-kernel=2.4.1

                --without-selinux

                --without-cvs

                --enable-bind-now

                --build=i686-pc-linux-gnu

                --host=i686-pc-linux-gnu

                --disable-profile

                --without-gd

                --with-headers=/usr/include

                --prefix=/usr

                --mandir=/usr/share/man

                --infodir=/usr/share/info

                --libexecdir=/usr/lib/misc/glibc

```

----------

## LinuxTom

 *NightDragon wrote:*   

> Was ich mich frage, ist ob das okay ist:
> 
>  *Quote:*   --enable-kernel=2.4.1  
> 
> Ist das normal? Du verwendest sicher eine 2.6er Kernel oder?

 

Nach LinuxFromScratch ist das nicht ok. Muss mal schauen, warum und wo das genau so gesetzt wird.

----------

## LinuxTom

Die "glibc-2.3.6-r4" bringt den gleichen Fehler.

Vielleicht liegt es ja auch am Kernel?

Mal eine andere Frage: Beim syncen bekomme ich u.a. diese Meldung:

```
Performing Global Updates: /usr/portage/profiles/updates/2Q-2006

(Could take a couple of minutes if you have a lot of binary packages.)

  .='update pass'  *='binary update'  @='/var/db move'

  s='/var/db SLOT move' S='binary SLOT move' p='update /etc/portage/package.*'

...........................
```

Kann das vielleicht damit auch zusammenhängen? Ich habe die 2006.0.

Sollte ich vielleicht irgend wie mein Profile umstellen?

----------

## LinuxTom

So, jetzt habe ich den linux-2.6.16-gentoo-r9 - Kernel und das gleiche Bild.

----------

## tux2

hm.. ich hab hier auch ein 64 bit gentoo.. hatte aber keine (dauerhaften) probleme beim kompiliern von glibc.

mein system läuft zwar auf ~amd64, konnte aber früher die glibc-2.3.x einwandfrei emergen.

```

*  sys-libs/glibc

      Latest version available: 2.4-r3

      Latest version installed: 2.4-r3

      Size of files: 16,410 kB

      Homepage:      http://www.gnu.org/software/libc/libc.html

      Description:   GNU libc6 (also called glibc2) C library

      License:       LGPL-2

```

was du noch machen könntest:

lass mal ein revdep-rebuild laufen (emerge gentoolkit falls nicht installiert). das repariert erst mal alle broken libraries und binaries.

falls sich danach glibc immer noch nicht updaten lässt kannst du ein emerge -e system mal ausprobieren. dann werden die wichtigesten packete neu gebaut.

zu meinen USE-Flags nochwas von glibc:

```

nls nptl nptlonly

```

die sind bei mir aktiviert.

Hoff ich konnt dir etwas weiter helfen

Ein tüxchen

----------

## schachti

 *LinuxTom wrote:*   

> So, jetzt habe ich den linux-2.6.16-gentoo-r9 - Kernel und das gleiche Bild.

 

Probier es doch mal mit der aktuellen ~amd64 Version der glibc.

----------

## LinuxTom

Was mir gerade auffällt: Ich habe die 2006.0 installiert, aber:

```
lrwxrwxrwx 1 root root 50 22. Mär 04:08 /etc/make.profile -> ../usr/portage/profiles/default-linux/amd64/2006.0/
```

Bei meinem Freund (identischer Rechner und auch die 2006.0 installiert) steht:

```
lrwxrwxrwx 1 root root 49  5. Feb 18:02 /etc/make.profile -> /usr/portage/profiles/default-linux/amd64/2005.1/
```

Wohlgemerkt 2006.0 gegen 2005.1!

Vielleicht ist auch in dem 2006er Profile ein Fehler?

@tux2:

Was hast Du denn für ein Profile?

Und Ihr anderen?

----------

## schachti

Falls die ~amd64 Version ebenfalls nicht will, könntest Du es ja mal mit USE="-nptl -nptlonly" probieren - denn beim emerge der glibc kommt zu Beginn

 *Quote:*   

>  * Warning! Gentoo's GLIBC with NPTL enabled now behaves like the
> 
>  * glibc from almost every other distribution out there. This means
> 
>  * that glibc is compiled -twice-, once with linuxthreads and once
> ...

 

Vielleicht ist NPTL das Problem... Am besten mal mit USE="-linuxthreads-tls" und mal mit USE="linuxthreads-tls" probieren, bin mir nicht sicher.

----------

## tux2

ich hab die 2006.0 und dein link ist schon so korrekt. der link von deinem freund jedoch nicht (wenn er die 2006.0 will).

bist du meinem ratschlag schon nachgegangen?

----------

## LinuxTom

Ja, bin ich. Immer der gleiche Fehler.  :Sad: 

Muss wahrscheinlich alles neu installieren.  :Sad: 

----------

## tux2

 *LinuxTom wrote:*   

> Muss wahrscheinlich alles neu installieren.

 

also ein emerge -e system baut eigentlich das system neu.

ich hab mal emerge -e system mit emerge -e glibc verglichen:

gcc wird bei mir bei system nach glibc emerged, bei emerge -e glibc vor glibc.

also ein versuch wärs noch wert gcc mal neu zu emergen.

----------

## LinuxTom

 *tux2 wrote:*   

> also ein versuch wärs noch wert gcc mal neu zu emergen.

 

Habe ich doch auch schon gemacht. Also die BinUtils und der GCC ohne Probleme. Aber danach die glibc immer der *Quote:*   

> x86_64-pc-linux-gnu-gcc errno.c -c -std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -march=k8 -pipe -Wstrict-proto
> 
> types      -I../include -I/var/tmp/portage/glibc-2.4-r3/work/build-amd64-x86_64-pc-linux-gnu-nptl/csu -I/var/tmp/portage/glibc-2.4-r3
> 
> /work/build-amd64-x86_64-pc-linux-gnu-nptl -I../sysdeps/x86_64/elf -I../nptl/sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/li
> ...

 

Fehler.

Werde wohl mal anfangen in den Sourcen der glibc schnüfffeln zu müssen.  :Sad: 

Kenne das noch aus meinen LFS-Zeiten. Dachte die wären vorbei.

----------

## Gibheer

Ich glaube, du wirst um eine neuinstallation nicht herum kommen, wenn es ueberhaupt an der Software liegt.

Mein Duron900 hat das selbe Problem. Ich konnte emergen was ich wollte, oft habe ich nen Fehler gehabt mit der ebuild.sh, nach nem emerge --resume ging es aber manchmal einfach weiter.

Allerdings habe ich es nie geschafft, die glibc zu kompilieren, egal was ich angestellt habe. Selbst nachdem ich ein aktuelles *vorher war es immer ein 2004.2-System) Stage-archiv neuinstalliert habe (vorher alles platt gemacht) ging es nicht. Irgendwann hab ich einfach mal das stage gelassen wie es war und wollte mir nen neuen Kernel machen, aber das ging nicht mehr, weil es immer wieder nen zeichendreher drin gab (zum Beispiel includE statt include, + statt / usw.)

Vllt ist ja wie bei mir irgendwas mit Board/CPU nicht in Ordnung, weswegen sich die glibc nicht kompilieren laesst. Ansonsten habe ich wirklich alles probiert und keine Loesung gefunden.

----------

## LinuxTom

Glaube ich nciht. Es ist bei mir immer der gleiche Fehler und mein Freund (gleiche Hardware, nur mit dem 2005.1-Profil) hat ja die neuen Pakete.

----------

## LinuxTom

Und da bin ich wieder. Vielleicht habe ich eine mögliche Ursache gefunden.

Kann es vielleicht an den USE-Flags der anderen Pakete liegen?

Wenn ich jetzt (nach einem neuen Sync) die USE-Flags mir anschaue, steht beispielsweise bei

```
[ebuild   R   ] app-cdr/k3b-0.12.14  USE="-ffmpeg* -flac* -vorbis*"
```

Ich habe aber nie etwas daran geändert, nachdem ich es einmal irgend wann ganz am Anfang eingestellt hatte. Von dem ffmpeg weiß ich, dass ich es an hatte, nun will er es "abschalten". Schaue ich mit profuse nach, steht es jedoch als "angeschaltet" in use.defaults.

Was soll ich davon halten?

Wie kann ich vielleicht eine ältere Einstellung aller USE-Flags "wiederherstellen"?

Wichtig:

Eben habe ich für diesen Beitrag noch einmal die Arbeitsweise von profuse kontrolliert. Stelle ich mit ufed ffmpeg wieder "an", wird es wieder reinkompiliert. Stelle ich es mit profuse wieder an, "kürzt" er es wieder raus, da es ja in use.defaults aktiv ist. Verstehe ich ja auch, aber lasse ich mit

```
emerge -pND world
```

 mal "nachschauen", nimmt er ffmpeg wieder raus.

Also irgend wie habe ich den Eindruck, dass da irgend etwas nicht so richtig funktioniert. Kann das jemand bestätigen?

----------

## Gibheer

das liegt an dem neuen portage, dass er die use.defaults nicht mehr beruecksichtigt (verstehe wer will). Du musst also alle USE-Flags die du wirklich drin haben willst, in die make.conf eintragen.

----------

## LinuxTom

 *Gibheer wrote:*   

> Du musst also alle USE-Flags die du wirklich drin haben willst, in die make.conf eintragen.

 

Das gibt mir aber dann die Möglichkeit die Einträge aus der defaults und die make.conf zu "kopieren" und so meinen alten zustand wieder herzustellen.

Warum achtet keiner auf das profuse? Ist nicht schön, wenn einem das dadurch alles kaputt haut. Da steht zwar auch ein Update an, aber kaputt ist nun kaputt.  :Sad: 

----------

