Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 153319 - Various apps: "cannot handle TLS data"
Summary: Various apps: "cannot handle TLS data"
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-29 09:53 UTC by Brian Litzinger
Modified: 2006-11-01 17:46 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brian Litzinger 2006-10-29 09:53:11 UTC
This subject is endlessly addressed in the nvidia world, but my
system is i810.

I have set 'nptl nptlonly' and am building xorg-server-1.1.1-r1.
Various things end up setting -DGLX_USE_TLS which results ultimately
in modules not loading due to 'unable to handle TLS data' errors at
load time.

One problem is that Mesa-6.5.1/configs/linux-dri-x86 may contain 
-DGLX_USE_TLS.

The other is that xorg-server-1.1.1-r1.ebuild contains 
$(use_enable nptl glx-tls)

By removing these TLS references I was able to build a working system
with dri and glx support.
Comment 1 Joshua Baergen (RETIRED) gentoo-dev 2006-10-29 10:31:16 UTC
I also use nptl/nptlonly and I don't see any of these issues.  What exactly is the problem with TLS?

Also, please post your emerge --info.
Comment 2 Donnie Berkholz (RETIRED) gentoo-dev 2006-10-29 21:37:23 UTC
It's unclear to me why you think an NPTL system would be unable to handle TLS, since that's a prerequisite for NPTL.
Comment 3 Brian Litzinger 2006-10-30 09:39:11 UTC
perhaps it is a symptom of some other problem.

I have an opteron system, an amd64 laptop, a couple of duo core systems, and a bunch of pentium M based systems.

About 4 of them so far have gotten sick in the normal course of emerge based upgrading related to TLS.  It first starting showing up as various applications reporting 'unable to handle TLS data'.  Specifically in the GLX support for the i810 xorg driver.

Removing the various --with-TLS options (some of which had to be hacked) produced working systems and a viable upgrade path.

here is the output of emerge --info on one of the x86 systems:

Portage 2.1.2_rc1 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.16-gentoo-r9 i686)
=================================================================
System uname: 2.6.16-gentoo-r9 i686 Genuine Intel(R) processor              1300MHz
Gentoo Base System version 1.6.15
Last Sync: Sat, 28 Oct 2006 23:30:01 +0000
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: [Not Present]
dev-lang/python:     2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.12
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-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"
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/X11/xkb /var/bind"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
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"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 2codecs X a52 aac alsa apache2 apm berkdb bitmap-fonts cli cpudetection cracklib crypt cups dlloader dri dvd dvdread eds elibc_glibc emboss encode esd faad foomaticdb fortran gdbm gif gpm gstreamer gtk gtk2 i8x0 iconv imlib input_devices_keyboard input_devices_mouse ipv6 isdnlog jpeg kernel_linux libg++ libwww mad mikmod mmx mmxext motif mp3 mpeg ncurses nls nptl nptlonly nvidia ogg opengl oss pam pcre perl png pppd python qt3 qt4 quicktime readline reflection rtc rtsp sdl session spell spl sse sse2 ssl tcpd truetype truetype-fonts type1-fonts udev usb userland_GNU video_cards_i810 video_cards_nvidia video_cards_vesa video_cards_via vorbis xml xorg xv xvmc zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY


Comment 4 Donnie Berkholz (RETIRED) gentoo-dev 2006-10-30 10:30:38 UTC
Could be an issue with your glibc build. Reassigning to toolchain.
Comment 5 SpanKY gentoo-dev 2006-10-30 11:46:38 UTC
post the output of `/lib/libc.so.6`
Comment 6 Brian Litzinger 2006-10-30 17:02:18 UTC
GNU C Library development release version 2.4, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.1 (Gentoo 4.1.1).
Compiled on a Linux 2.6.16 system on 2006-06-02.
Available extensions:
	The C stubs add-on version 2.1.2.
	crypt add-on version 2.1 by Michael Glad and others
	GNU Libidn by Simon Josefsson
	GNU libio by Per Bothner
	NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
	Native POSIX Threads Library by Ulrich Drepper et al
	Support for some architectures added on, not maintained in glibc core.
	BIND-8.2.3-T5B
Thread-local storage support included.
Comment 7 Brian Litzinger 2006-10-30 17:54:05 UTC
Maybe this will help:  I can no longer emerge glibc.

On the opteron I get


 /usr/include -D_LIBC_REENTRANT -include include/libc-symbols.h       -DASSEMBLER  -DGAS_SYNTAX  -Wa,--noexecstack  -E -x assembler-with-cpp' \
	    /bin/sh sysdeps/unix/make-syscalls.sh $dir || exit 1; }; \
	  test $dir = sysdeps/unix && break; \
	done > /var/tmp/portage/sys-libs/glibc-2.4-r4/work/build-x86-x86_64-pc-linux-gnu-nptl/sysd-syscallsT
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:
nptl/sysdeps/i386/i686/../tls.h:65:3: error: #error "TLS support is required."

errors very early on though it does not stop.

Later I get
		-fno-exceptions -o /var/tmp/portage/sys-libs/glibc-2.4-r4/work/build-x86-x86_64-pc-linux-gnu-nptl/csu/initfini.s
../sysdeps/generic/initfini.c:1: error: CPU you selected does not support x86-64 instruction set
../sysdeps/generic/initfini.c:1: error: CPU you selected does not support x86-64 instruction set

And in case you are wondering
gcc -v
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/gcc-4.1.1-r1/work/gcc-4.1.1/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.1 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-multilib --disable-libmudflap --disable-libssp --disable-libgcj --enable-languages=c,c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.1.1 (Gentoo 4.1.1-r1)


Comment 8 SpanKY gentoo-dev 2006-10-30 18:03:49 UTC
do you actually mean the error said "cannot handle TLS data" ?

also, why does your `emerge info` say gcc-3.4.6/glibc-2.3.6 when your libc.so.6 obviously came from gcc-4.1.1/glibc-2.4 ?

are you randomly posting info from different machines here ?
Comment 9 Brian Litzinger 2006-10-31 01:23:21 UTC
In my own mind I decided to focus on the opteron system.  I may have failed to mention it to anyone else.

I could just be a case of drift, though I was surprised by all the different systems running into the problem at nearly the same time.

The actual error text is 'cannot handle TLS data'.  I first came across when glx was failing to load in xorg-server as a part of the i810 driver.  It would show up in the xorg log and was on a Pentium M system and a Core Duo system.

Next I saw it on an opteron system when trying to build glibc with
the message '#error "TLS support is required."'

I then saw it in an application I've forgotten the name of.  It would
report 'cannot handle TLS data' when I tried to execute the binary.
Even strace and ldd -r against the binary would report the same
message.

I've 'emerge -e world' on a pentium M machine.   I haven't gotten to trying to see if glx works, but I did remove all my hacks.

The opteron and the amd64 are also emerging similarly.

I'll report the results after all is recompiled.  Perhaps I've just run into the gentoo drift problem.  I.E. you can't upgrade forever.  The occasional emerge -e world is required.

I've done a few revdep-rebuilds along the way too.

Comment 10 Brian Litzinger 2006-11-01 17:02:00 UTC
So far as I can tell, my troubles may or may not be related to
TLS and broken tool chains as described in

http://forums.gentoo.org/viewtopic-t-421297-highlight-glibc+tls+required.html

I am happy to see this bug tossed as caused by the problem discussed in that thread.  Though I am not sure.
Comment 11 SpanKY gentoo-dev 2006-11-01 17:46:31 UTC
i havent really followed any of this when people hit the "no TLS support" error as it is due to some misconfiguration on their end

i'd suggest you emerge latest stable binutils, rebuild latest stable gcc, make sure gcc-config is run, and then see if latest stable glibc builds