tls tests fail of gcc-4.0.3 and glibc errors in nptl; what to do now?

lynx.abraxas at freenet.de lynx.abraxas at freenet.de
Sun Jan 7 12:05:51 PST 2007


On 07/01/07 19:40:50, Ken Moffat wrote:
> On Sun, Jan 07, 2007 at 07:31:16PM +0100, lynx.abraxas at freenet.de wrote:
> > Hallo!
> > 
> > 
> > I'm  trying  to compile a gcc-4.0.3 to compile glibc-2.3.6 but gcc-4.0.3 tests
> > have tls failures, see attachment test_summary01.out.
> > 
> > I ran into problems while trying to upgrade my glibc from 2.3.3-lfs  to  2.3.6
> > (because  of  x264  using  sched_getaffinity()  with 2 parms, glibc not beeing
> > executable and now wine segfaulting). There I got errors (see below). Are they
> > related  to  the gcc tls failures? What can I do with gcc and glibc? Can these
> > problems be related to the kernel 2.6.19.1?
> > 
> > My system is  an  LFS  5.1.1  with  upgraded  versions  of  gcc  and  binutils
> > (binutils-2.15.94.0.2.2   ->  binutils-2.17.50.0.1)  and  not  2.4-kernel  but
> > 2.6.19.1. I fear that the default gcc (4.1.1) of my system  had  tls  failures
> > too.
> > 
> > Thanks for any help,
> > Lynx
> > 
>  I'm unclear exactly what you are trying to do, or what toolchains
> you have available.  At first, I thought 'LFS 5.1.1' was a typo for
> 'LFS 6.1.1', but when you mention '2.4-kernel' I'm not so sure.
Thanks for the quick reply.

I'm  sorry  my  mail is not clear. I have an LFS 5.1.1 nearly  three years old
and pretty big, so I'm not happy with doing a new LFS if I can't  use  what  I
did in BLFS sinc then.

>
>  I'm not familiar with x264 (nor multiprocessors, nor wine), but if
> you are intending to upgrade glibc on a running system, you have a
> good chance of breaking things.  If you build from source, you
> should expect to build a new system from time to time.

Well  I  already  got  some info on upgrading glibc micro versions (upgrade of
libc-2.3.3.so to libc-2.3.6.so problematic? at the list).
It should work if the new glibc has no errors.


>
>  I can't find sched_affinity in any headers on my current system, so
> I guess it is a kernel syscall - in that case, and given that it
> apparently doesn't work for you with 2.6.19.1, maybe it's the
> include/linux headers which cause the compiler to call it with the
> wrong args.  If so, upgrading glibc is unlikely to help, and changing
> include/linux under a running system is likely to break things.

I can't say where I found the info about sched_affinity but it said that  only
glibc-2.3.3  had  it  with  3 params and newer versions with only 2 again. But
this isn't a big problem at all. More the thing with wine.

>
>  You also say you are "trying to compile a gcc-4.0.3", but then you
> appear to already have a version of gcc-4.0.3, which you have use to
> build gcc:

The error grep is from glibc-2.3.6  compilation  onec  done  with  my  default
gcc-4.1.1 and once with the gcc-4.0.3 in /opt with its tls failures.

> > with gcc-4.0.3:
> > grep Error glibc-check-log0
> > make[2]: [/usr/src/glibc/glibc-build/posix/annexc.out] Error 1 (ignored)
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancel17.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx4.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx5.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx16.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx17.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx20.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx21.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cleanupx4.out] Error 1
> > make[1]: *** [nptl/tests] Error 2
> > make: *** [check] Error 2
> >
>
>  as well as a version of gcc-4.1.1:
>
> > with gcc-4.1.1:
> > grep Error glibc-check-log0
> > make[2]: [/usr/src/glibc/glibc-build/posix/annexc.out] Error 1 (ignored)
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancel17.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx4.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx5.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx16.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx17.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx20.out] Error 1
> > make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx21.out] Error 1
> > make[1]: *** [nptl/tests] Error 2
> > make[2]: *** [/usr/src/glibc/glibc-build/resolv/tst-leaks.out] Error 1
> > make[1]: *** [resolv/tests] Error 2
> > make: *** [check] Error 2
> >
> [ I've snipped the gcc test results here, because I'm getting
> totally confused - you only seem to have a _few_ failures, which
> should be no big deal ]
>
>  The glibc test failures look like the sort of things we all see
> from time to time - search the archives and I'm sure you'll see most
> of these, although not necessarily so many of them together.
>
>  My best advice to you is to consider if it's time to rebuild your
> LFS system completely.  But, I'd better add that glibc-2.5 has some
> similar errors in the nptl tests (at least on the combinations of
> kernel-binutils-gcc-headers that I've tried so far).

Well more detailed parts of glibc-check-log0:

GCONV_PATH=/usr/src/glibc/glibc-build/iconvdata                       LC_ALL=C
/usr/src/glibc/glibc-build/elf/ld-linux.so.2                    --library-path
/usr/src/glibc/glibc-build:/usr/src/glibc/glibc-
build/math:/usr/src/glibc/glibc-build/elf:/usr/src/glibc/glibc-
build/dlfcn:/usr/src/glibc/glibc-build/nss:/usr/src/glibc/glibc-
build/nis:/usr/src/glibc/glibc-build/rt:/usr/src/glibc/glibc-
build/resolv:/usr/src/glibc/glibc-build/crypt:/usr/src/glibc/glibc-build/nptl
/usr/src/glibc/glibc-build/nptl/tst-cancel17      >      /usr/src/glibc/glibc-
build/nptl/tst-cancel17.out
Didn't expect signal from child: got `Segmentation fault'
make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancel17.out] Error 1

GCONV_PATH=/usr/src/glibc/glibc-build/iconvdata                       LC_ALL=C
/usr/src/glibc/glibc-build/elf/ld-linux.so.2                    --library-path
/usr/src/glibc/glibc-build:/usr/src/glibc/glibc-
build/math:/usr/src/glibc/glibc-build/elf:/usr/src/glibc/glibc-
build/dlfcn:/usr/src/glibc/glibc-build/nss:/usr/src/glibc/glibc-
build/nis:/usr/src/glibc/glibc-build/rt:/usr/src/glibc/glibc-
build/resolv:/usr/src/glibc/glibc-build/crypt:/usr/src/glibc/glibc-build/nptl
/usr/src/glibc/glibc-build/nptl/tst-cancelx4      >      /usr/src/glibc/glibc-
build/nptl/tst-cancelx4.out
make[2]: *** [/usr/src/glibc/glibc-build/nptl/tst-cancelx4.out] Error 1

Where   as   in  /usr/src/glibc/glibc-build/nptl/tst-cancelx4.out  and  others
similar:

package    glibc:/usr/src/glibc/glibc-build>     cat     /usr/src/glibc/glibc-
build/nptl/tst-cancelx4.out
cleanup handler not called for 'read'
cleanup handler not called for 'readv'
cleanup handler not called for 'select'
cleanup handler not called for 'pselect'
cleanup handler not called for 'poll'
cleanup handler not called for 'write'
cleanup handler not called for 'writev'
cleanup handler not called for 'sleep'
cleanup handler not called for 'usleep'
cleanup handler not called for 'nanosleep'
cleanup handler not called for 'wait'
cleanup handler not called for 'waitid'
cleanup handler not called for 'waitpid'
cleanup handler not called for 'sigpause'
cleanup handler not called for 'sigsuspend'
cleanup handler not called for 'sigwait'
cleanup handler not called for 'sigwaitinfo'
cleanup handler not called for 'sigtimedwait'
cleanup handler not called for 'pause'
cleanup handler not called for 'accept'
cleanup handler not called for 'send'
cleanup handler not called for 'recv'
cleanup handler not called for 'recvfrom'
cleanup handler not called for 'recvmsg'
cleanup handler not called for 'msgrcv'
early cancel test of 'read' successful
early cancel test of 'readv' successful
early cancel test of 'select' successful
early cancel test of 'pselect' successful
early cancel test of 'poll' successful
early cancel test of 'write' successful
early cancel test of 'writev' successful
early cancel test of 'sleep' successful
early cancel test of 'usleep' successful
early cancel test of 'nanosleep' successful
early cancel test of 'wait' successful
early cancel test of 'waitid' successful
early cancel test of 'waitpid' successful
early cancel test of 'sigpause' successful
early cancel test of 'sigsuspend' successful
early cancel test of 'sigwait' successful
early cancel test of 'sigwaitinfo' successful
early cancel test of 'sigtimedwait' successful
early cancel test of 'pause' successful
early cancel test of 'accept' successful
early cancel test of 'send' successful
early cancel test of 'recv' successful
early cancel test of 'recvfrom' successful
early cancel test of 'recvmsg' successful
early cancel test of 'open' successful
early cancel test of 'close' successful
early cancel test of 'pread' successful
early cancel test of 'pwrite' successful
early cancel test of 'fsync' successful
early cancel test of 'msync' successful
early cancel test of 'sendto' successful
early cancel test of 'sendmsg' successful
early cancel test of 'creat' successful
early cancel test of 'connect' successful
early cancel test of 'tcdrain' successful
early cancel test of 'msgrcv' successful
early cancel test of 'msgsnd' successful


And in /usr/src/glibc/glibc-build/nptl/tst-cleanupx4.out:

package     glibc:/usr/src/glibc/glibc-build>     cat    /usr/src/glibc/glibc-
build/nptl/tst-cleanupx4.out
test 0
clh (2)
global = 2, expected 15
test 1
clh (4)
clh (5)
clh (6)
global = 156, expected 276
test 2
clh (7)
clh (8)
global = 64, expected 120
test 3
clh (2)
clh (9)
clh (10)
global = 280, expected 460


Others have no errors at all in glibc. The segfault isn't nice  I'd  say.  The
tst-cleanupx4  error  didn't happen again when I removed tst-cleanupx4.out and
did make -k check again.

I hope this makes it more clear.
Lynx



More information about the lfs-support mailing list