this is good stuff, i swear
We only have this unmasked in an experimental profile at the moment, so no stable for us for a bit.
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
tests arent going to pass with glibc ... they never have some works needs to be done wrt sandbox first
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.
(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.
the tests are failing because of sandbox, not glibc
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
(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.
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.
(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"
(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).
(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.
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.
x86 stable
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.
(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?
(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).
Marked ppc stable.
amd64 stable
12 Feb 2007; Bryan Østergaard <kloeri@gentoo.org> glibc-2.5.ebuild: Stable on IA64. Noone left here, closing.