Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 165085 - stabilize sys-libs/glibc-2.5
Summary: stabilize sys-libs/glibc-2.5
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All All
: High enhancement (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on: 165145
Blocks:
  Show dependency tree
 
Reported: 2007-02-03 01:53 UTC by SpanKY
Modified: 2007-02-14 04:13 UTC (History)
3 users (show)

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


Attachments
test failures in detail (glibc.txt,11.18 KB, text/plain)
2007-02-03 21:39 UTC, Matthias Langer
Details
Make tests report failures and continue, rather than abort (glibc-2.4-testfailobvious.patch,919 bytes, patch)
2007-02-04 01:15 UTC, Kevin F. Quinn (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description SpanKY gentoo-dev 2007-02-03 01:53:21 UTC
this is good stuff, i swear
Comment 1 Jason Wever (RETIRED) gentoo-dev 2007-02-03 18:59:10 UTC
We only have this unmasked in an experimental profile at the moment, so no stable for us for a bit.
Comment 2 Matthias Langer 2007-02-03 21:39:24 UTC
Created attachment 109045 [details]
test failures in detail

on x86:

i'm getting test failures when merging

sys-libs/glibc-2.5 USE="nls nptl nptlonly -build -glibc-compat20 -glibc-omitfp -hardened (-multilib) -profile (-selinux)"

on two different boxes - see attachment for details. should they be ignored?

box1:
Portage 2.1.1-r2 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.17-gentoo-r8 i686)
=================================================================
System uname: 2.6.17-gentoo-r8 i686 Intel(R) Pentium(R) 4 CPU 3.40GHz
Gentoo Base System version 1.12.6
Last Sync: Sat, 03 Feb 2007 17:20:01 +0000
ccache version 2.4 [disabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.7, 2.0.31
dev-lang/python:     2.3.5-r3, 2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r6
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
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.16.1-r3
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=prescott"
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/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -march=prescott"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig collision-protect distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/ http://gentoo.mirror.solnet.ch http://mirror.etf.bg.ac.yu/gentoo"
LC_ALL="en_US.utf8"
MAKEOPTS="-j3"
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/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 X acpi aiglx alsa berkdb bitmap-fonts browserplugin bzip2 cairo cli cracklib crypt cups dbus dlloader dri dvd dvi elibc_glibc emboss encode fam firefox fortran gdbm gif gnome gpm gstreamer gtk hal iconv input_devices_keyboard input_devices_mouse ipv6 isdnlog java jpeg kernel_linux ldap libg++ mad midi mikmod mmx mp3 mpeg nautilus ncurses nls nptl nptlonly nsplugin nvidia ogg opengl pam pcre perl png ppds pppd python quicktime readline reflection ruby sdl session spell spl sse sse2 ssl svg tcpd threads tiff truetype truetype-fonts type1-fonts udev unicode usb userland_GNU video_cards_nvidia vorbis win32codecs xinerama xml xorg xprint xv zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS

box2:
Portage 2.1.1-r2 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.4-r4, 2.6.19-gentoo-r5 i686)
=================================================================
System uname: 2.6.19-gentoo-r5 i686 AMD Athlon(tm) XP 2400+
Gentoo Base System version 1.12.6
Last Sync: Sat, 03 Feb 2007 10:50:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.7, 2.0.31
dev-lang/python:     2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
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.16.1-r3
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O2 -pipe"
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 /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=athlon-xp -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig collision-protect distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.ynet.sk/pub "
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LINGUAS="en de"
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'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://192.168.0.1/gentoo-portage"
USE="x86 3dnow 3dnowext X a52 aac acpi aiglx alsa audiofile avahi beagle berkdb bitmap-fonts bzip2 cairo cdr cli cracklib crypt css cups dbus dlloader dri dvd dvdr dvdread eds elibc_glibc emboss encode evo exif fam fbcon ffmpeg firefox flac fortran gdbm gif ginac gmp gnome gnutls gphoto2 gpm gstreamer gtk gtk2 hal iconv icq input_devices_keyboard input_devices_mouse ipod ipv6 isdnlog java javascript jpeg jpeg2k kernel_linux lcms ldap libg++ linguas_de linguas_en mad midi mikmod mime mmx mmxext mono mozsvg mp3 mpeg msn nautilus ncurses nfs nls nptl nptlonly nsplugin nvidia offensive ogg oggvorbis opengl pam pcre pdf perl plotutils png posix ppds pppd python qt3 qt4 quicktime readline real reflection ruby sdl session sockets spell spl sqlite3 sse ssl subtitles svg tcpd tetex theora threads tiff truetype truetype-fonts type1-fonts udev unicode usb userland_GNU vcd video_cards_nvidia vorbis win32codecs wma xine xml xorg xv xvid zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 SpanKY gentoo-dev 2007-02-03 22:35:40 UTC
tests arent going to pass with glibc ... they never have

some works needs to be done wrt sandbox first
Comment 4 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-04 01:15:43 UTC
Created attachment 109062 [details, diff]
Make tests report failures and continue, rather than abort

I think it would be useful to maintain lists of tests that are known to fail; something that could be maintained on the web site somewhere (perhaps create a toolchain project page - or dump it in the hardened project area).  Then when people see test failures in glibc, they can easily see whether the failures are expected or not.

This trivial patch alters how glibc runs its tests so that when a test fails, (1) there's a clear, easily-grep-able string in the build log, and (2) the testing continues with the rest of the tests (that happens because 'echo FAILED <blah>' always succeeds).  Some test failures do remain fatal, so these continue to abort testing.
Comment 5 Andrej Kacian (RETIRED) gentoo-dev 2007-02-04 04:45:54 UTC
(In reply to comment #3)
> tests arent going to pass with glibc ... they never have
> 
> some works needs to be done wrt sandbox first
> 

Why not just use RESTRICT="test" if we know that tests are going to fail? Or if there are just few of many tests failing, patch the build system to exclude those tests. Otherwise we'll probably go through this discussion everytime you want to stabilize new glibc version.
Comment 6 SpanKY gentoo-dev 2007-02-04 07:26:21 UTC
the tests are failing because of sandbox, not glibc
Comment 7 Markus Meier gentoo-dev 2007-02-04 12:03:21 UTC
sys-libs/glibc-2.5  USE="nls nptl nptlonly -build -glibc-compat20 -glibc-omitfp -hardened (-multilib) -profile (-selinux)"
1. emerges on x86, please note:
QA Notice: the following files are setXid, dyn linked, and using lazy bindings
LAZY usr/lib/misc/glibc/pt_chown
2. passes collision test
3. emerge -e system finished without any problems

Portage 2.1.1-r2 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.19.2 i686)
=================================================================
System uname: 2.6.19.2 i686 Genuine Intel(R) CPU           T2300  @ 1.66GHz
Gentoo Base System version 1.12.6
Last Sync: Sat, 03 Feb 2007 10:00:01 +0000
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.7, 2.0.31
dev-lang/python:     2.3.5-r3, 2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
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.16.1-r3
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=prescott -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 /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--nospinner"
FEATURES="autoconfig collision-protect distlocks metadata-transfer parallel-fetch sandbox sfperms strict test userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://mirror.switch.ch/mirror/gentoo/ http://gentoo.inode.at/"
LINGUAS="en de en_GB de_CH"
MAKEOPTS="-j3"
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 X a52 aac acpi alsa apache2 asf berkdb bitmap-fonts cairo cdr cdrom cli cracklib crypt cups dbus divx dlloader dri dts dvd dvdr dvdread eds elibc_glibc emboss encode fam ffmpeg firefox flac fortran gdbm gif gnome gpm gstreamer gtk hal iconv input_devices_keyboard input_devices_mouse ipv6 isdnlog java jpeg kde kdeenablefinal kernel_linux ldap libg++ linguas_de linguas_de_CH linguas_en linguas_en_GB mad midi mikmod mmx mono mp3 mpeg ncurses nls nptl nptlonly ogg opengl oss pam pcre perl png ppds pppd python qt3 qt4 quicktime readline reflection rtsp ruby samba sdl session smp spell spl sse sse2 sse3 ssl svg tcpd test tetex theora threads truetype truetype-fonts type1-fonts udev unicode userland_GNU vcd video_cards_fbdev video_cards_i810 video_cards_vesa vorbis win32codecs wxwindows x264 xine xml xorg xprint xv xvid zlib"
Unset:  CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 8 Andrej Kacian (RETIRED) gentoo-dev 2007-02-04 14:05:01 UTC
(In reply to comment #6)
> the tests are failing because of sandbox, not glibc
> 

Yes, but they're failing. Until a fixed sandbox version is in the tree, just make the failing tests go away please.
Comment 9 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-04 16:27:55 UTC
RESTRICT=test on glibc is a bad idea on a package as central as glibc, IMO.

If some tests fail and are expected to do so, we should have our eyes open, not closed.  This means knowing exactly which tests fail, and understanding exactly why they fail.


An easier way to get all the answers without patching, is to use 'make -i':

toolchain-glibc_src_test() {
    cd "${WORKDIR}"/build-${ABI}-${CTARGET}-$1 ||
        die "cd build-${ABI}-${CTARGET}-$1"
    unset LD_ASSUME_KERNEL
    make check && return
    einfo "make check failed - re-running with --ignore-errors to get the rest of the results"
    make --ignore-errors check
    ewarn "make check failed for ${ABI}-${CTARGET}-$1"
    return 1
}
...
src_test() {
    setup_env
    local ok=0

    if ... <abi shenanigans>

    if want_linuxthreads; then
        toolchain-glibc_src_test linuxthreads || ok=1
    fi
    if want_nptl; then
        toolchain-glibc_src_test nptl || ok=1
    fi
    return ${ok}
}

and grep for 'Error' in the log.

On a standard x86 2.6.18-gentoo-r6 kernel and FEATURES="-sandbox", I get the following failures (when upgrading from 2.4-r4):

linuxthreads/posix/annexc.out
linuxthreads/linuxthreads/tst-clock1.out
linuxthreads/rt/tst-aio9.out  (child timeout)
linuxthreads/rt/tst-aio10.out  (child timeout)
linuxthreads/elf/check-localplt.out
linuxthreads/c++-types-check.out
nptl/posix/annexc.out
nptl/nptl/tst-cancel1.out (child aborted)

I would not be surprised if the list were different for other arches.


I don't think there's anything to be gained from delaying the stabilisation of 2.5 for this (and 2007.0 as a result) - after all, these failures haven't really changed from 2.4 or 2.3 - but in the longer term I think we should document what's happening and work out why.
Comment 10 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-04 16:31:08 UTC
(In reply to comment #9)
>     fi
>     return ${ok}
> }

would probably be better as something like,

[[ ${ok}=="0" ]] || die "glibc tests failed - consult <blah> to compare results"

Comment 11 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-04 17:57:46 UTC
(In reply to comment #9)
> On a standard x86 2.6.18-gentoo-r6 kernel and FEATURES="-sandbox", I get the
> following failures (when upgrading from 2.4-r4):

And the results are identical when re-emerging 2.5 with 2.5 already installed. (which is expected, since the tests shouldn't be using the installed glibc).
Comment 12 Andrej Kacian (RETIRED) gentoo-dev 2007-02-04 18:32:14 UTC
(In reply to comment #9)
> I don't think there's anything to be gained from delaying the stabilisation of
> 2.5 for this (and 2007.0 as a result) - after all, these failures haven't
> really changed from 2.4 or 2.3 - but in the longer term I think we should
> document what's happening and work out why.

This is exactly why I'm stressing this - either disable tests that are expected to fail (because executing them is pointless), or document them somewhere. If we all just stabilize 2.5, everyone will forget about it and we'll have to go through it again on next stabilization request.
Comment 13 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-04 22:56:36 UTC
Of the two nptl failures, here's some data:

posix/annexc:
This is an expected failure upstream, apparently
http://sourceware.org/ml/libc-hacker/1998-11/msg00207.html

nptl/tst-cancel1: 
http://sourceware.org/ml/libc-alpha/2006-09/msg00039.html
talks about  unwinder support on x86/amd64 that isn't in gcc-4.1.1
(it is in 4.2 and later)

So nptl at least seems fine on x86 for me.

Comment 14 Christian Faulhammer (RETIRED) gentoo-dev 2007-02-06 10:24:24 UTC
x86 stable
Comment 15 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-10 22:48:23 UTC
A heads-up for the interested - it seems that glibc-2.5 does not contain symbol definitions for __pthread_register_cancel@GLIBC_2.3.3 and __pthread_unregister_cancel@GLIBC_2.3.3, unless I've done something wrong.

Packages I have installed on various systems that reference these symbols include:

x11-libs/qt-3
app-antivirus/clamav
sys-fs/fuse
media-video/mjpegtools
media-libs/libgii

Re-emerging the affected packages resolves the issue.
Comment 16 Sven 2007-02-11 00:41:55 UTC
(In reply to comment #15)
> A heads-up for the interested - it seems that glibc-2.5 does not contain symbol
> definitions for __pthread_register_cancel@GLIBC_2.3.3 and
> __pthread_unregister_cancel@GLIBC_2.3.3, unless I've done something wrong.
> 
> Re-emerging the affected packages resolves the issue.


And how can we find out, which packages are broken?
1. revdep-rebuild doesn't find missing symbols.
2. revdep-rebuild can't search for certain symbols.

Any ideas?
Comment 17 Kevin F. Quinn (RETIRED) gentoo-dev 2007-02-11 08:28:38 UTC
(In reply to comment #16)
> And how can we find out, which packages are broken?

Ah; I should have said what I did -

  scanelf -qlps __pthread_register_cancel

will tell you the affected files; 'qfile <file>' will tell you from which package the file comes (there's also 'equery belongs <file>' but it's rather slow - or you can just grep the vdb).
Comment 18 Joe Jezak (RETIRED) gentoo-dev 2007-02-11 15:03:30 UTC
Marked ppc stable.
Comment 19 Simon Stelling (RETIRED) gentoo-dev 2007-02-12 00:37:11 UTC
amd64 stable
Comment 20 Jakub Moc (RETIRED) gentoo-dev 2007-02-13 17:23:51 UTC
 12 Feb 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5.ebuild:
  Stable on IA64.

Noone left here, closing.