Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at Mon Jun 27 15:35:49 CEST 2011.
-------- --- glibc/glibc.changes 2011-06-20 14:48:11.000000000 +0200 +++ /mounts/work_src_done/STABLE/glibc/glibc.changes 2011-06-27 14:20:26.000000000 +0200 @@ -1,0 +2,26 @@ +Mon Jun 27 12:19:47 UTC 2011 - [email protected] + +- Disable exp_malloc on PPC platforms for now since it caused a + build failure. + +------------------------------------------------------------------- +Mon Jun 27 11:00:33 UTC 2011 - [email protected] + +- Update glibc-x86-bits-sigcontext.patch with version accepted + upstream. +- Add glibc-2.15-getsysstats-speedup.patch to "Fix Linux + sysconf(_SC_NPROCESSORS_[CONF|ONLN]) performance problem" +- Fix warning about potential array subscript out of bounds + (glibc-2.13-wranings.fix). +- Fix some rpmlint warnings. + +------------------------------------------------------------------- +Tue Jun 21 10:59:33 UTC 2011 - [email protected] + +- Cleanup spec file, change PreReqs. +- Remove obsolete patches: glibc-2.3.90-ld.so-madvise.diff, + glibc-suse-note.diff, glibc-2.3-regcomp.diff. +- Rename glibc-2.3-SuSE.diff to glibc-testsuite.patch, remove obsolete + parts. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- glibc-2.3.90-ld.so-madvise.diff glibc-2.3-regcomp.diff glibc-2.3-SuSE.diff glibc-suse-note.diff minmem New: ---- glibc-2.13-warnings.fix glibc-2.15-getsysstats-speedup.patch glibc-testsuite.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.EPC2Mf/_old 2011-06-27 15:32:06.000000000 +0200 +++ /var/tmp/diff_new_pack.EPC2Mf/_new 2011-06-27 15:32:06.000000000 +0200 @@ -57,13 +57,21 @@ %else %define enablekernel 2.6.5 %endif +%ifarch ppc ppc64 +# On PowerPC we got a memory corruption during building, disabling +# exp_malloc fixed it. Disable it until we have found and fixed the +# root cause. +%define exp_malloc 0 +%else %define exp_malloc 1 +%endif +# ngpt was used in 8.1 and SLES8 Obsoletes: ngpt < 2.2.2 Obsoletes: ngpt-devel < 2.2.2 Provides: ngpt = 2.2.2 Provides: ngpt-devel = 2.2.2 Conflicts: kernel < %{enablekernel} -# bug437293 +# bug437293 - handle update from SLES10 on PowerPC %ifarch ppc64 Obsoletes: glibc-64bit %endif @@ -71,7 +79,7 @@ Obsoletes: glibc-32bit %endif Version: 2.13 -Release: 13 +Release: 15 Url: http://www.gnu.org/software/libc/libc.html Source: glibc-%{version}-996cf2ef0727.tar.bz2 Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.bz2 @@ -84,7 +92,7 @@ Source12: glibc_post_upgrade.c Source15: glibc.rpmlintrc Source16: baselibs.conf -PreReq: filesystem +Requires(pre): filesystem Provides: rtld(GNU_HASH) BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %_target_cpu == "i686" @@ -93,8 +101,8 @@ NoSource: 0 %endif # -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch0: glibc-2.3-SuSE.diff +# PATCH-FIX-OPENSUSE remove lfs test from testsuite [email protected] +Patch0: glibc-testsuite.patch # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch1: glibc-2.3.90-noversion.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -110,8 +118,6 @@ # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch8: glibc-2.4.90-revert-only-euro.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch9: glibc-2.3-regcomp.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch11: glibc-2.3.1.localedef.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff @@ -120,12 +126,8 @@ # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch14: glibc-2.3.90-bindresvport.blacklist.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch15: glibc-suse-note.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch16: glibc-2.4.90-no_NO.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch17: glibc-2.3.90-ld.so-madvise.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch18: glibc-2.3.3-amd64-s_ceil.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch20: glibc-2.4-china.diff @@ -155,7 +157,7 @@ Patch36: glibc-no-unwind-tables.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch37: glibc-2.10-nscd-nostack.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility [email protected] Patch38: glibc-cpusetsize.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch39: glibc-2.10.99-ia64-include.diff @@ -183,22 +185,26 @@ Patch50: glibc-gconvcache-s390.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch51: glibc-vfprintf-positional.diff -# FIX-OPENSUSE bnc#657627 +# PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM Fix longlong.h for zArch Patch53: glibc-zarch-longlong.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FEATURE-OPENSUSE disable backward memcpy [email protected] Patch54: glibc-disable-backward-memcpy.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch55: glibc-bso-12454.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-UPSTREAM fix static memcpy Patch56: glibc-static-memcpy.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff # PATCH-FIX-UPSTREAM fix preloading of shared libs [email protected] Patch59: glibc-2.13-dl-load.patch -# PATCH-FIX-UPSTREAM fix x86 <bits/sigcontext.h [email protected] +# PATCH-FIX-UPSTREAM fix x86 <bits/sigcontext.h> [email protected] Patch60: glibc-x86-bits-sigcontext.patch +# PATCH-FEATURE-UPSTREAM Speedup getsysstats call [email protected] +Patch61: glibc-2.15-getsysstats-speedup.patch +# PATCH-FIX-UPSTREAM Fix gcc 4.6 warnings [email protected] +Patch62: glibc-2.13-warnings.fix # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch500: ARM_glibc-2.10.1-local-eabi-wchar.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -218,7 +224,8 @@ License: GPLv2+ Summary: Info Files for the GNU C Library Group: Documentation/Other -PreReq: %{install_info_prereq} +Requires(post): %{install_info_prereq} +Requires(postun): %{install_info_prereq} %description info This package contains the documentation for the GNU C library stored as @@ -250,7 +257,7 @@ License: GPLv2+ ; LGPLv2.1+ Summary: Locale Data for Localized Programs Group: System/Libraries -PreReq: /bin/cat +Requires(post): /bin/cat Requires: glibc = %{version} # bug437293 %ifarch ppc64 @@ -269,7 +276,9 @@ Group: System/Daemons Provides: aaa_base:/etc/init.d/nscd Provides: glibc:/usr/sbin/nscd -PreReq: %insserv_prereq +Requires(preun): %insserv_prereq +Requires(post): %insserv_prereq +Requires(postun): %insserv_prereq %description -n nscd Nscd caches name service lookups and can dramatically improve @@ -305,8 +314,8 @@ %ifarch ppc Obsoletes: glibc-devel-32bit %endif -PreReq: /bin/rm -Requires: glibc = %{version}, linux-kernel-headers +Requires: glibc = %{version} +Requires: linux-kernel-headers %description devel These libraries are needed to develop programs which use the standard C @@ -331,9 +340,9 @@ Requires: glibc = %{version} %description utils -The glibc-utils package contains memusage, a memory usage profiler, -mtrace, a memory leak tracer and xtrace, a function call tracer -which can be helpful during program debugging. +The glibc-utils package contains mtrace, a memory leak tracer and +xtrace, a function call tracer which can be helpful during program +debugging. If you are unsure if you need this, don't install this package. @@ -367,8 +376,7 @@ # any other leave out ports %setup -n glibc-%{version} -q -a 3 -a 4 %endif -# Seems not needed anymore -#%patch0 +%patch0 # libNoVersion part is only active on ix86 %patch1 %patch2 -p1 @@ -377,17 +385,13 @@ %patch5 %patch7 %patch8 -# Seems not needed anymore -#%patch9 %patch11 %patch12 %patch13 -E # We have s_sincos.c in patch13, remove duplicate rm sysdeps/x86_64/fpu/s_sincos.S %patch14 -%patch15 %patch16 -%patch17 %patch18 %patch20 %patch21 @@ -431,7 +435,9 @@ %patch56 -p1 %patch58 %patch59 -p1 -%patch60 +%patch60 -p1 +%patch61 -p1 +%patch62 -p1 %ifarch %arm armv5tel armv7l %patch500 %patch501 @@ -479,7 +485,7 @@ # # Default CFLAGS and Compiler # -BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE" +BuildFlags="%{optflags} -U_FORTIFY_SOURCE" BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" BuildCC="gcc" BuildCCplus="g++" @@ -614,7 +620,7 @@ # # Build glibc_post_upgrade binary # -$BuildCC -static $RPM_OPT_FLAGS -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ +$BuildCC -static %{optflags} -Os $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ -Lcc-base -Bcc-base/csu \ '-DREMOVE_TLS_DIRS' '-DREMOVE_PPC_OPTIMIZE_POWER5' \ %ifarch ppc ppc64 @@ -631,7 +637,7 @@ '-DREMOVE_PPC_OPTIMIZE_CELL' \ %endif %endif - '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_libdir}/gconv"' ####################################################################### ### @@ -674,12 +680,12 @@ export STRIP_KEEP_SYMTAB=*.so* # Make sure we will create the gconv-modules.cache -mkdir -p $RPM_BUILD_ROOT%{_libdir}/gconv -touch $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache +mkdir -p %{buildroot}%{_libdir}/gconv +touch %{buildroot}%{_libdir}/gconv/gconv-modules.cache # Install base glibc # Do not install in parallel, timezone Makefile will fail -make install_root=$RPM_BUILD_ROOT install -C cc-base +make install_root=%{buildroot} install -C cc-base # Install power-optimized glibc %if %{optimize_power} @@ -701,24 +707,24 @@ ppc-cell-be \ %endif ; do - make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu - mkdir -p $RPM_BUILD_ROOT/%{_lib}/$pcpu + make install_root=%{buildroot}/$pcpu install -C cc-$pcpu + mkdir -p %{buildroot}/%{_lib}/$pcpu for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version}; do - mv $RPM_BUILD_ROOT/$pcpu/%{_lib}/$i.so $RPM_BUILD_ROOT/%{_lib}/$pcpu + mv %{buildroot}/$pcpu/%{_lib}/$i.so %{buildroot}/%{_lib}/$pcpu done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ - rm -rf $RPM_BUILD_ROOT/$pcpu + $my_ldconfig -n %{buildroot}/%{_lib}/$pcpu/ + rm -rf %{buildroot}/$pcpu done %if %{powerpc_optimize_cpu_power6} # power6 is compatible with power6x # doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir - if test -d $RPM_BUILD_ROOT/%{_lib}/power6; then - mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6x - for i in $RPM_BUILD_ROOT/%{_lib}/power6/*.so; do + if test -d %{buildroot}/%{_lib}/power6; then + mkdir -p %{buildroot}/%{_lib}/power6x + for i in %{buildroot}/%{_lib}/power6/*.so; do b=`basename $i` - ln -vs ../power6/$b $RPM_BUILD_ROOT/%{_lib}/power6x/$b + ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b done - $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power6x/ + $my_ldconfig -n %{buildroot}/%{_lib}/power6x/ fi %endif %endif # optimize_power @@ -727,7 +733,7 @@ %if %{build_locales} # Do not install locales in parallel! cd cc-base - make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` + make install_root=%{buildroot} install-locales -C ../localedata objdir=`pwd` cd .. %endif # Create file list for glibc-locale package @@ -736,55 +742,55 @@ # Prepare obsolete/, used only on some architectures: export RPM_BUILD_ROOT %ifarch %ix86 -mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete +mkdir -p %{buildroot}/%{_lib}/obsolete %endif # NPTL <bits/stdio-lock.h> is not usable outside of glibc, so include # the generic one (RH#162634) -cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h +cp -av bits/stdio-lock.h %{buildroot}%{_includedir}/bits/stdio-lock.h %ifarch s390x # s390x is different ... - mkdir $RPM_BUILD_ROOT/lib - ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 + mkdir %{buildroot}/lib + ln -sf ../%{_lib}/ld-%{version}.so %{buildroot}/lib/ld64.so.1 %endif # Miscelanna: -install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} +install -m 0700 glibc_post_upgrade %{buildroot}%{_sbindir} -install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc -install -m 644 $RPM_SOURCE_DIR/nsswitch.conf $RPM_BUILD_ROOT/etc -install -m 644 posix/gai.conf $RPM_BUILD_ROOT/etc +install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist %{buildroot}/etc +install -m 644 $RPM_SOURCE_DIR/nsswitch.conf %{buildroot}/etc +install -m 644 posix/gai.conf %{buildroot}/etc -mkdir -p $RPM_BUILD_ROOT/etc/default -install -m 644 nis/nss $RPM_BUILD_ROOT/etc/default/ +mkdir -p %{buildroot}/etc/default +install -m 644 nis/nss %{buildroot}/etc/default/ -mkdir -p $RPM_BUILD_ROOT/usr/include/resolv -install -m 0644 resolv/mapv4v6addr.h $RPM_BUILD_ROOT/usr/include/resolv/ -install -m 0644 resolv/mapv4v6hostent.h $RPM_BUILD_ROOT/usr/include/resolv/ +mkdir -p %{buildroot}%{_includedir}/resolv +install -m 0644 resolv/mapv4v6addr.h %{buildroot}%{_includedir}/resolv/ +install -m 0644 resolv/mapv4v6hostent.h %{buildroot}%{_includedir}/resolv/ -mkdir -p $RPM_BUILD_ROOT/usr/share/doc/glibc -cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc +mkdir -p %{buildroot}%{_datadir}/doc/glibc +cp -p manual/libc/*.html %{buildroot}%{_datadir}/doc/glibc -cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. +cd manpages; make install_root=%{buildroot} install; cd .. # nscd tools: -cp nscd/nscd.conf $RPM_BUILD_ROOT/etc -mkdir -p $RPM_BUILD_ROOT/etc/apparmor.d -cp $RPM_SOURCE_DIR/usr.sbin.nscd $RPM_BUILD_ROOT/etc/apparmor.d -mkdir -p $RPM_BUILD_ROOT/etc/init.d -install -m 755 $RPM_SOURCE_DIR/nscd.init $RPM_BUILD_ROOT/etc/init.d/nscd -ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd -mkdir -p $RPM_BUILD_ROOT/var/run/nscd -touch $RPM_BUILD_ROOT/var/run/nscd/{passwd,group,hosts} -touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} +cp nscd/nscd.conf %{buildroot}/etc +mkdir -p %{buildroot}/etc/apparmor.d +cp $RPM_SOURCE_DIR/usr.sbin.nscd %{buildroot}/etc/apparmor.d +mkdir -p %{buildroot}/etc/init.d +install -m 755 $RPM_SOURCE_DIR/nscd.init %{buildroot}/etc/init.d/nscd +ln -sf /etc/init.d/nscd %{buildroot}/usr/sbin/rcnscd +mkdir -p %{buildroot}/var/run/nscd +touch %{buildroot}/var/run/nscd/{passwd,group,hosts} +touch %{buildroot}/var/run/nscd/{socket,nscd.pid} # # Create ld.so.conf # -cat > $RPM_BUILD_ROOT/etc/ld.so.conf <<EOF +cat > %{buildroot}/etc/ld.so.conf <<EOF /usr/%{_lib}/Xaw3d %ifarch s390x sparc64 x86_64 ppc64 ppc /usr/lib/Xaw3d @@ -804,29 +810,29 @@ include /etc/ld.so.conf.d/*.conf EOF # Add ldconfig cache directory for directory ownership -mkdir -p $RPM_BUILD_ROOT/var/cache/ldconfig +mkdir -p %{buildroot}/var/cache/ldconfig # Empty the ld.so.cache: -rm -f $RPM_BUILD_ROOT/etc/ld.so.cache -touch $RPM_BUILD_ROOT/etc/ld.so.cache +rm -f %{buildroot}/etc/ld.so.cache +touch %{buildroot}/etc/ld.so.cache # libNoVersion belongs only to glibc-obsolete: %ifarch %ix86 - rm -f $RPM_BUILD_ROOT%{_libdir}/libNoVersion* - mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion - mv -v $RPM_BUILD_ROOT/%{_lib}/libNoVersion* $RPM_BUILD_ROOT/%{_lib}/obsolete/noversion/ + rm -f %{buildroot}%{_libdir}/libNoVersion* + mkdir -p %{buildroot}/%{_lib}/obsolete/noversion + mv -v %{buildroot}/%{_lib}/libNoVersion* %{buildroot}/%{_lib}/obsolete/noversion/ %endif # Don't look at ldd! We don't wish a /bin/sh requires -chmod 644 $RPM_BUILD_ROOT/usr/bin/ldd +chmod 644 %{buildroot}%{_bindir}/ldd # Remove timezone data, now coming in standalone package: for i in sbin/sln usr/bin/tzselect usr/sbin/zic usr/sbin/zdump etc/localtime; do - rm -f $RPM_BUILD_ROOT/$i + rm -f %{buildroot}/$i done -rm -rf $RPM_BUILD_ROOT/usr/share/zoneinfo +rm -rf %{buildroot}%{_datadir}/zoneinfo # Remove the buildflags tracking section and the build-id -for o in $RPM_BUILD_ROOT/%{_libdir}/crt[1in].o $RPM_BUILD_ROOT/%{_libdir}/lib*_nonshared.a; do +for o in %{buildroot}/%{_libdir}/crt[1in].o %{buildroot}/%{_libdir}/lib*_nonshared.a; do objcopy -R ".comment.SUSE.OPTs" -R ".note.gnu.build-id" $o done @@ -837,10 +843,10 @@ ####################################################################### %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} # Note: glibc_post_upgrade does: -# %set_permissions %{_libdir}/pt_chown +# %%set_permissions %%{_libdir}/pt_chown # since we cannot do it in our own post section %post -p %{_sbindir}/glibc_post_upgrade @@ -1021,7 +1027,7 @@ %files locale -f libc.lang %defattr(-,root,root) -/usr/share/locale/locale.alias +%{_datadir}/locale/locale.alias %if %{build_locales} /usr/lib/locale %endif @@ -1037,7 +1043,7 @@ %{_bindir}/catchsegv %{_bindir}/rpcgen %{_bindir}/sprof -%{_prefix}/include/* +%{_includedir}/* %{_libdir}/*.o %{_libdir}/*.so # These static libraries are needed even for shared builds @@ -1116,8 +1122,8 @@ /%{_lib}/libmemusage.so /%{_lib}/libpcprofile.so # These need gd-devel for building -#%{_bindir}/memusage -#%{_bindir}/memusagestat +# %%{_bindir}/memusage +# %%{_bindir}/memusagestat %{_bindir}/mtrace %{_bindir}/pcprofiledump %{_bindir}/xtrace ++++++ glibc-2.13-warnings.fix ++++++ commit 5615eaf26469f20c2d8c3be5770e12564a1edfff Author: Roland McGrath <[email protected]> Date: Fri Jun 10 12:45:09 2011 -0700 Quash some new warnings from GCC 4.6. 2011-06-10 Roland McGrath <[email protected]> * elf/dl-open.c (_dl_open): Quash warnings when DL_NNS==1. diff --git a/elf/dl-open.c b/elf/dl-open.c index 8d90b56..19fda91 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -516,7 +516,7 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, if (__builtin_expect (nsid == LM_ID_NEWLM, 0)) { /* Find a new namespace. */ - for (nsid = 1; nsid < GL(dl_nns); ++nsid) + for (nsid = 1; DL_NNS > 1 && nsid < GL(dl_nns); ++nsid) if (GL(dl_ns)[nsid]._ns_loaded == NULL) break; @@ -528,8 +528,7 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, _dl_signal_error (EINVAL, file, NULL, N_("\ no more namespaces available for dlmopen()")); } - - if (nsid == GL(dl_nns)) + else if (nsid == GL(dl_nns)) { __rtld_lock_initialize (GL(dl_ns)[nsid]._ns_unique_sym_table.lock); ++GL(dl_nns); ++++++ glibc-2.15-getsysstats-speedup.patch ++++++ >From glibc.git (for 2.15): 2011-06-23 H.J. Lu <[email protected]> * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Use __gettimeofday instead of gettimeofday. 2011-06-22 Ulrich Drepper <[email protected]> * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Use /sys/devices/system/cpu/online if it is usable. * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Rate limit reading the information from the /proc filesystem to once a second. --- glibc-2.13/sysdeps/unix/sysv/linux/getsysstats.c 2010-04-08 10:45:22.000000000 +0200 +++ glibc.git/sysdeps/unix/sysv/linux/getsysstats.c 2011-06-27 09:56:27.359389056 +0200 @@ -1,5 +1,5 @@ /* Determine various system internal values, Linux version. - Copyright (C) 1996-2003,2006,2007,2009,2010 Free Software Foundation, Inc. + Copyright (C) 1996-2003,2006,2007,2009,2010,2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <[email protected]>, 1996. @@ -35,6 +35,16 @@ #include <atomic.h> #include <not-cancel.h> +#include <kernel-features.h> + +#ifndef HAVE_CLOCK_GETTIME_VSYSCALL +# undef INTERNAL_VSYSCALL +# define INTERNAL_VSYSCALL INTERNAL_SYSCALL +# undef INLINE_VSYSCALL +# define INLINE_VSYSCALL INLINE_SYSCALL +#else +# include <bits/libc-vdso.h> +#endif /* How we can determine the number of available processors depends on @@ -128,6 +138,22 @@ int __get_nprocs () { + static int cached_result; + static time_t timestamp; + +#ifdef __ASSUME_POSIX_TIMERS + struct timespec ts; + INTERNAL_SYSCALL_DECL (err); + INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts); +#else + struct timeval ts; + __gettimeofday (&ts, NULL); +#endif + time_t prev = timestamp; + atomic_read_barrier (); + if (ts.tv_sec == prev) + return cached_result; + /* XXX Here will come a test for the new system call. */ const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512; @@ -135,20 +161,65 @@ char *buffer_end = buffer + buffer_size; char *cp = buffer_end; char *re = buffer_end; - int result = 1; #ifdef O_CLOEXEC const int flags = O_RDONLY | O_CLOEXEC; #else const int flags = O_RDONLY; #endif + int fd = open_not_cancel_2 ("/sys/devices/system/cpu/online", flags); + char *l; + int result = 0; + if (fd != -1) + { + l = next_line (fd, buffer, &cp, &re, buffer_end); + if (l != NULL) + do + { + char *endp; + unsigned long int n = strtoul (l, &endp, 10); + if (l == endp) + { + result = 0; + break; + } + + unsigned long int m = n; + if (*endp == '-') + { + l = endp + 1; + m = strtoul (l, &endp, 10); + if (l == endp) + { + result = 0; + break; + } + } + + result += m - n + 1; + + l = endp; + while (l < re && isspace (*l)) + ++l; + } + while (l < re); + + close_not_cancel_no_status (fd); + + if (result > 0) + goto out; + } + + cp = buffer_end; + re = buffer_end; + result = 1; + /* The /proc/stat format is more uniform, use it by default. */ - int fd = open_not_cancel_2 ("/proc/stat", flags); + fd = open_not_cancel_2 ("/proc/stat", flags); if (fd != -1) { result = 0; - char *l; while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL) /* The current format of /proc/stat has all the cpu* entries at the front. We assume here that stays this way. */ @@ -169,6 +240,11 @@ } } + out: + cached_result = result; + atomic_write_barrier (); + timestamp = ts.tv_sec; + return result; } weak_alias (__get_nprocs, get_nprocs) ++++++ glibc-gconvcache-s390.diff ++++++ --- /var/tmp/diff_new_pack.EPC2Mf/_old 2011-06-27 15:32:07.000000000 +0200 +++ /var/tmp/diff_new_pack.EPC2Mf/_new 2011-06-27 15:32:07.000000000 +0200 @@ -1,3 +1,8 @@ +2011-06-21 Andreas Jaeger <[email protected]> + + * sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules): + Copy rule from iconvdata/Makefile. + Index: glibc/sysdeps/s390/s390-64/Makefile =================================================================== --- sysdeps/s390/s390-64/Makefile 2009-08-03 10:18:31.000000000 +0200 ++++++ glibc-testsuite.patch ++++++ test-lfs runs for ever on ReiserFS. Let's disable it completely. Index: io/Makefile =================================================================== --- io/Makefile.orig +++ io/Makefile @@ -64,7 +64,7 @@ static-only-routines = stat fstat lstat others := pwd test-srcs := ftwtest -tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ +tests := test-utime test-stat test-stat2 tst-getcwd \ tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ tst-openat tst-unlinkat tst-fstatat tst-futimesat \ tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ ++++++ glibc-x86-bits-sigcontext.patch ++++++ --- /var/tmp/diff_new_pack.EPC2Mf/_old 2011-06-27 15:32:07.000000000 +0200 +++ /var/tmp/diff_new_pack.EPC2Mf/_new 2011-06-27 15:32:07.000000000 +0200 @@ -1,113 +1,35 @@ -2011-06-20 Andreas Jaeger <[email protected]> - * sysdeps/unix/sysv/linux/i386/bits/sigcontext.h: New file. +http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6e502e19455c6110dd4487d91b7b7d6d8121f9ba -============================================================ -Index: ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h ---- ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h created -+++ ./sysdeps/unix/sysv/linux/i386/bits/sigcontext.h 2011-06-20 12:14:48.528411362 +0200 1.1 -@@ -0,0 +1,104 @@ -+/* Copyright (C) 2011 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#ifndef _BITS_SIGCONTEXT_H -+#define _BITS_SIGCONTEXT_H 1 -+ -+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H -+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." -+#endif -+ -+struct _fpreg -+{ -+ unsigned short significand[4]; -+ unsigned short exponent; -+}; -+ -+struct _fpxreg -+{ -+ unsigned short significand[4]; -+ unsigned short exponent; -+ unsigned short padding[3]; -+}; -+ -+struct _xmmreg -+{ -+ __uint32_t element[4]; -+}; -+ -+ -+ -+struct _fpstate -+{ -+ /* Regular FPU environment. */ -+ __uint32_t cw; -+ __uint32_t sw; -+ __uint32_t tag; -+ __uint32_t ipoff; -+ __uint32_t cssel; -+ __uint32_t dataoff; -+ __uint32_t datasel; -+ struct _fpreg _st[8]; -+ unsigned short status; -+ unsigned short magic; -+ -+ /* FXSR FPU environment. */ -+ __uint32_t _fxsr_env[6]; -+ __uint32_t mxcsr; -+ __uint32_t reserved; -+ struct _fpxreg _fxsr_st[8]; -+ struct _xmmreg _xmm[8]; -+ __uint32_t padding[56]; -+}; -+ -+#ifndef sigcontext_struct -+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but -+ we need sigcontext. Some packages have come to rely on -+ sigcontext_struct being defined on 32-bit x86, so define this for -+ their benefit. */ -+# define sigcontext_struct sigcontext -+#endif -+ -+struct sigcontext -+{ -+ unsigned short gs, __gsh; -+ unsigned short fs, __fsh; -+ unsigned short es, __esh; -+ unsigned short ds, __dsh; -+ unsigned long edi; -+ unsigned long esi; -+ unsigned long ebp; -+ unsigned long esp; -+ unsigned long ebx; -+ unsigned long edx; -+ unsigned long ecx; -+ unsigned long eax; -+ unsigned long trapno; -+ unsigned long err; -+ unsigned long eip; -+ unsigned short cs, __csh; -+ unsigned long eflags; -+ unsigned long esp_at_signal; -+ unsigned short ss, __ssh; -+ struct _fpstate * fpstate; -+ unsigned long oldmask; -+ unsigned long cr2; -+}; -+ -+ -+#endif /* _BITS_SIGCONTEXT_H */ +commit 6e502e19455c6110dd4487d91b7b7d6d8121f9ba +Author: Ulrich Drepper <[email protected]> +Date: Wed Jun 22 08:32:55 2011 -0400 + + Clean up after kernel sigcontext header mess + + +2011-06-21 Andreas Jaeger <[email protected]> + + * sysdeps/unix/sysv/linux/bits/sigcontext.h: Fix definition of + NULL after inclusion of kernel headers. + + +diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h +index 67dcf94..0f5b607 100644 +--- a/sysdeps/unix/sysv/linux/bits/sigcontext.h ++++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. ++/* Copyright (C) 1996, 1997, 1998, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -26,4 +26,8 @@ + # define sigcontext_struct sigcontext + + # include <asm/sigcontext.h> ++ ++/* The Linux kernel headers redefine NULL wrongly, so cleanup afterwards. */ ++# define __need_NULL ++# include <stddef.h> + #endif ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
