# [SOLVED] GLIBC: "TLS support is required."

## SinoTech

So, also da mir im englischen Forum anscheinend keiner bei meinem kleinen Problem helfen kann, und auch google nicht sonderlich hilfreich ist, hoffe ich mal das ihr noch ein paar Tips für mich habt (Sitze schon fast 48h an diesem problem  :Sad: ).

Das Problem ist das sich meine glibc nicht mehr kompilieren lässt. Emerge bricht immer mit folgender Meldung ab:

```

nptl/sysdeps/i386/i686/../tls.h:65:3: error: #error "TLS support is required."

In file included from nptl/sysdeps/i386/i686/tls.h:34,

                 from include/tls.h:6,

                 from sysdeps/unix/sysv/linux/i386/sysdep.h:30,

                 from <stdin>:1:

[...]

```

Ich habe "nptl" und "nptlonly" in meinen USE-Flags. Das komische dabei ist das ich sie früher schon mehrfach kompilieren konnte (Als ich vor etwa einem Monat mein System neu aufgesetzt habe und dann als ich auf gcc-4.X umgestiegen bin). Von daher wundert es mich weshalb der Fehler jetzt auftaucht.

Ich habe verschiedene versionen der glibc probiert, mehrere versionen der binutils und auch wieder den alten gcc (3.4.X) installiert. Trotzdem bricht jeder Versuch mit obiger Fehlermeldung ab.

Ein "emerge -e world" hat leider auch nichts gebracht (Hat bei jemandem im englischen Forum das Problem gelöst, nur bei mir leider nicht).

Mittlerweile bin ich mit meinem Latein echt am Ende. Könnte mir nur noch vorstellen das ich eine Option im Kernel vergessen habe zu aktivieren oder das ein USE-Flag fehlt. Von daher hier erstmal mein "emerge --info":

```

Portage 2.0.53 (default-linux/amd64/2005.1, gcc-4.0.2, glibc-2.3.6-r1, 2.6.14-nitro2 x86_64)

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

System uname: 2.6.14-nitro2 x86_64 AMD Athlon(tm) 64 Processor 3000+

Gentoo Base System version 1.6.13

ccache version 2.3 [disabled]

dev-lang/python:     2.3.5, 2.4.2

sys-apps/sandbox:    1.2.12

sys-devel/autoconf:  2.13, 2.59-r6

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-r1

sys-devel/libtool:   1.5.20

virtual/os-headers:  2.6.11-r2

ACCEPT_KEYWORDS="amd64"

AUTOCLEAN="yes"

CBUILD="x86_64-pc-linux-gnu"

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

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib64/mozilla/defaults/pref /usr/share/X11/xkb /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/qmail/control"

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

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

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks sandbox sfperms strict"

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

MAKEOPTS="-j1"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage_overlays/portage_over /usr/local/portage_overlays/java_experimentel /usr/local/portage_overlays/gentoo_de"

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

USE="amd64 X alsa apache2 audiofile avi berkdb bitmap-fonts browserplugin bzip2 cdr crypt cscope cups curl divx4linux dvd dvdread eds emboss encode ethereal exif expat fam firefox foomaticdb fortran gif gimpprint glut gmp gnome gpm gtk gtk2 idn imagemagick imlib java jpeg junit lcms libwww lzw lzw-tiff mad mhash mng mozilla mp3 mpeg mysql ncurses nls nptl nptlonly nsplugin nvidia ogg oggvorbis opengl oss pam pcre pdflib perl png ppds python readline samba sdl spell ssl subversion tiff truetype truetype-fonts type1-fonts udev usb userlocales vorbis xine xml xml2 xmms xpm xv xvid zlib userland_GNU kernel_linux elibc_glibc"

Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS

```

Und meine kernelconfig.

Achja, habe es mit zwei verschiedenen kerneln probiert: gentoo-sources-2.6.14-r5 und nitro-sources-2.6.14-r2 ... leider kein Unterschied  :Sad: .

Mfg,

SinoLast edited by SinoTech on Wed Jan 11, 2006 11:17 pm; edited 1 time in total

----------

## mrsteven

Schuss ins Blaue: Hast du die linux-headers schon mal neu installiert?

----------

## SinoTech

 *mrsteven wrote:*   

> Schuss ins Blaue: Hast du die linux-headers schon mal neu installiert?

 

Jep, das hatte leider auch nichts gebracht. Habe aber anscheinend das Problem irgendwie gelöst, kann allerdings nicht genau sagen was ich alles gemacht habe. Glaube es war so etwas in der Art:

1. Habe auf einen x68-gcc gewechselt

2. "emerge -e world"

3. Zurück auf einen x86_64-gcc

4. emerge glibc

Muss nachher mal in meiner ".bash_history" nachschauen was ich alles gemacht habe  :Wink:  (Ausserdem warte ich mit dem [SOLVED] noch bis er meine Toolchain neu gebaut hat, nicht das er dabei wieder diesen Fehler bringt  :Wink: ).

Wie auch immer, danke für deine Antwort.

Mfg

Sino

----------

## SinoTech

Ok, also hier ist was ich bisher rausgefunden habe:

1. Auswählen eines x86-gcc und glibc bauen

```

$ eselect compiler set  x86_64-pc-linux-gnu-4.0.2/x86-vanilla

$ emerge glibc

```

2. Auswhlen eines x86_64-gcc und glibc neu bauen (bzw. gleich die ganze Toolchain)

```

$ eselect compiler set x86_64-pc-linux-gnu-4.0.2/amd64-vanilla

$ emerge binutils glibc gcc

```

3. Nun sollte die Toolchain mit sich selbst neu gebaut werden, aber hier schlägt die glibc wieder fehl.

Tja, ein bisschen komisch ist das schon .. aber naja, hauptsache es läuft.

Ach ja, was mich noch ein bisschen wundert ist das der Fehler in der Datei

nptl/sysdeps/i386/i686/tls.h

auftritt und nicht in dieser hier:

nptl/sysdeps/x86_64/tls.h

Evtl. weiß ja jemand was genaueres  :Smile: 

Mfg

Sino

----------

## SinoTech

Ach ja, noch eine kleine Frage. Also das ist die Ausgabe von "eselect":

```

$ eselect compiler list

Available compilers for CTARGET i686-pc-linux-gnu

  [1]   i686-pc-linux-gnu-3.4.4/default

  [2]   i686-pc-linux-gnu-3.4.4/hardened

  [3]   i686-pc-linux-gnu-3.4.4/hardenednopie

  [4]   i686-pc-linux-gnu-3.4.4/hardenednopiessp

  [5]   i686-pc-linux-gnu-3.4.4/hardenednossp

  [6]   i686-pc-linux-gnu-4.0.2/default

  [7]   x86_64-pc-linux-gnu-3.4.4/x86-hardened

  [8]   x86_64-pc-linux-gnu-3.4.4/x86-hardenednopie

  [9]   x86_64-pc-linux-gnu-3.4.4/x86-hardenednopiessp

  [10]  x86_64-pc-linux-gnu-3.4.4/x86-hardenednossp

  [11]  x86_64-pc-linux-gnu-3.4.4/x86-vanilla

  [12]  x86_64-pc-linux-gnu-4.0.2/x86-vanilla

Available compilers for CTARGET x86_64-pc-linux-gnu

  [13]  x86_64-pc-linux-gnu-3.4.4/amd64-hardened

  [14]  x86_64-pc-linux-gnu-3.4.4/amd64-hardenednopie

  [15]  x86_64-pc-linux-gnu-3.4.4/amd64-hardenednopiessp

  [16]  x86_64-pc-linux-gnu-3.4.4/amd64-hardenednossp

  [17]  x86_64-pc-linux-gnu-3.4.4/amd64-vanilla

  [18]  x86_64-pc-linux-gnu-4.0.2/amd64-vanilla

```

Ein

```

eselect compiler set 12

```

sollte doch "x86_64-pc-linux-gnu-4.0.2/x86-vanilla" auswählen. Ein "eselect compiler show" zeigt mir jedoch

```

 x86_64-pc-linux-gnu-4.0.2/amd64-vanilla

```

Also so als ob ich die 18 gewählt hätte. Nur mit dem Unterschied das "12" bei mir keine Probleme macht, die 18 jedoch schon.

Hat jemand das selbe Problem, oder liegt es evtl. an einer alten Datei unter "/etc/env.d/gcc" (Habe nämlich mein "/etc" beibehalten als ich mein System von x86 auf amd64 geupdated habe).

Mfg

Sino

----------

## Tyler_Durden

hui, das klingt für mich alles ziemlich durcheinander, und das dürfte der Grund sein: 

 *SinoTech wrote:*   

> ...oder liegt es evtl. an einer alten Datei unter "/etc/env.d/gcc" (Habe nämlich mein "/etc" beibehalten als ich mein System von x86 auf amd64  geupdated habe)... 

 

Lt. Deinem "emerge --info" bist Du auf X86_64 Platform und hast den gcc-4.02 installiert, die Ausgabe von eselect kann daher nicht stimmen.

Das GCC-Setup hinterlässt seine Spuren in "/ect/env.d/" und Unterverzeichnis "gcc" und mindestens noch in "/etc/eselect/compiler". Wenn Du das also einfach von der i686-Installation kopierst, kann das nur schiefgehen. Keine Ahnung, was dann passiert, wenn Du den Compiler für i686 auswählst, den es dann ja eigentlich gar nicht gibt. Schlimmstenfalls baust Du Dir eine 32-bit -Toolchain in Dein 64-bit-System ein...  :Shocked: 

Das scheint hier sogar zu passieren:

 *SinoTech wrote:*   

> Ach ja, was mich noch ein bisschen wundert ist das der Fehler in der Datei
> 
> nptl/sysdeps/i386/i686/tls.h
> 
> auftritt und nicht in dieser hier:
> ...

 

Ich schlage vor, Du wählst mit 

```
gcc-config x86_64-pc-linux-gnu-4.0.2
```

 den einzig mit Sicherheit vorhandenen Compiler aus, räumst in "/etc/..." auf und baust noch mal die Toolchain neu, solange das System noch funktioniert.

So sieht das ganze übrigens bei mir aus:

```
HAL9000 ~ # emerge info

Portage 2.1_pre3-r1 (default-linux/amd64/2005.1, gcc-4.1.0-beta20060106, glibc-2.3.90.20060108-r0, 2.6.15-nitro1 x86_64)

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

System uname: 2.6.15-nitro1 x86_64 AMD Athlon(tm) 64 Processor 4000+

Gentoo Base System version 1.12.0_pre13

dev-lang/python:     2.3.5, 2.4.2

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-r1

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.11-r3

ACCEPT_KEYWORDS="amd64 ~amd64"

AUTOCLEAN="yes"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=k8 -O2 -pipe -msse3 -fomit-frame-pointer -ftree-vectorize"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/share/X11/xkb /usr/share/config /var/qmail/control"

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

CXXFLAGS="-march=k8 -O2 -pipe -msse3 -fomit-frame-pointer -ftree-vectorize -ffriend-injection"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks sandbox sfperms strict"

GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo"

LANG="de_DE.UTF-8"

LC_ALL="de_DE.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--sort-common -z combreloc -Wl,--enable-new-dtags -Wl,-Bdirect"

LINGUAS="de"

MAKEOPTS="-j2"

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 X a52 aalib acl acpi alsa amd apm arts artswrappersuid audiofile avi bash-completion berkdb bitmap-fonts blas bluetooth bzip2 cairo cdb cdr crypt css cups curl dbus dga directfb dpms dri dts dvb dvd dvdr dvdread eds emboss emul-linux-x86 encode esd ethereal exif expat fam fbcon ffmpeg firefox flac font-server foomaticdb fortran gd gdbm gif gimp gimpprint glut gmp gnome gphoto2 gpm gs gstreamer gtk gtk2 hal howl icq idn ieee1394 imagemagick imlib ipv6 java jce jpeg junit kde kdeenablefinal lame lapack lcms ldap libcaca live lm_sensors logitech-mouse lua lzw lzw-tiff mad mikmod mng motif mozilla mozsvg mp3 mpeg musicbrainz nas ncurses nls nptl nptlonly nsplugin ntfs nvidia offensive ogg oggvorbis opengl pam pcre pdf pdflib perl png ppds python qt quicktime readline recode rtc ruby sblive scanner sdl slang spell sqlite ssl svg symlink tcltk tcpd threads tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 visualization vorbis x264 xfs xine xinerama xml xml2 xmms xosd xpm xprint xv xvid zlib elibc_glibc kernel_linux linguas_de userland_GNU"

Unset:  ASFLAGS, CTARGET
```

```
HAL9000 ~ # gcc-config -l

 [1] x86_64-pc-linux-gnu-3.4.5

 [2] x86_64-pc-linux-gnu-3.4.5-hardened

 [3] x86_64-pc-linux-gnu-3.4.5-hardenednopie

 [4] x86_64-pc-linux-gnu-3.4.5-hardenednopiessp

 [5] x86_64-pc-linux-gnu-3.4.5-hardenednossp

 [6] x86_64-pc-linux-gnu-4.1.0-beta20060106 *
```

Ich habe gcc-4.1 und gcc-3.4.5 (für die Problemfälle) parallel installiert.

----------

## SinoTech

Thanks für dein reply. Werde mich mal grad dran machen mein System etwas aufzuräumen.

"/etc/" hatte ich beibehalten um nicht alles neu konfigurieren zu müssen (apache, ...) ... tja, jetzt hab ich den Salat  :Wink: .

Mfg

Sino

----------

## Tyler_Durden

ok, und gib' auch ein Feedback im englischen Thread ab, damit nxsty wieder beruhigt ist   :Wink: 

----------

## SinoTech

Schon passiert  :Smile: . Wie auch immer, ein kleines Problem bleibt noch. Der gcc lässt sich leider nicht mehr kompilieren ... macht ewig rum und irgendwann, wenn er an der libstdc++-v4 ist bricht er ab mit der Meldung ab

```

Illegal conversion void* to pthread*

```

(Oder so ähnlich, habe sie leider nicht mehr vor mir).

Mfg

Sino

EDIT:

Habe mir mittels "quickpkg" vom "gcc", "eselect-compiler" und "glibc" Binärpakete erstellt. Danach den "gcc" und "eselect-compiler" gelöscht (Auch die zugehörigen Verzeichnisse in "/etc"). Eigentlich wollte ich "eselect-compiler" und "gcc" danach wieder entpacken (Wären dann ja nur noch die wirklich benötigten Dateien unter "/etc" gewesen), den korrekten gcc auswählen und toolchain neu bauen ... nur leider macht "emerge" etc. jetzt nicht mehr mit:

```

/usr/bin/python: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

```

Tja, habe gcc-3.4.3, 3.4.4, 4.0.2-r1, 4.0.2-r2 wieder entpacket und "libstdc++.so.6" ist auch eigentlich wieder vorhanden, nur irgendwie geht trotzdem nichts.

Tja, hab ich mir ein schönes Ei gelegt  :Sad: 

----------

## SinoTech

Ok, hab wieder alles zum laufen bekomm  :Smile: 

Mfg

Sino

----------

## Tyler_Durden

 *SinoTech wrote:*   

> Schon passiert . Wie auch immer, ein kleines Problem bleibt noch. Der gcc lässt sich leider nicht mehr kompilieren ... macht ewig rum und irgendwann, wenn er an der libstdc++-v4 ist bricht er ab mit der Meldung ab
> 
> ```
> 
> Illegal conversion void* to pthread*
> ...

 

Auf dieses Problem hatte ich ich hier schon mal hingewiesen   :Wink: 

----------

## SinoTech

 *Tyler_Durden wrote:*   

>  *SinoTech wrote:*   Schon passiert . Wie auch immer, ein kleines Problem bleibt noch. Der gcc lässt sich leider nicht mehr kompilieren ... macht ewig rum und irgendwann, wenn er an der libstdc++-v4 ist bricht er ab mit der Meldung ab
> 
> ```
> 
> Illegal conversion void* to pthread*
> ...

 

Shit, dachte das liegt mal wieder an mir  :Sad:  ... hätte ich nur kurz den Thread durchsuchen müssen  :Sad: .

Naja egal, habe im Moment jedenfalls wieder den alten gcc (3.4.X) drauf ... kümmere mich am WE dann wieder um den neuen (4.X) und den glibc Patch.

Danke jedenfalls für deine Hilfe.

Mfg

Sio

----------

