Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at 2012-01-06 11:44:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glibc (Old) and /work/SRC/openSUSE:Factory/.glibc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glibc", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/glibc/glibc.changes 2011-12-27 18:35:38.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.glibc.new/glibc.changes 2012-01-06 11:44:09.000000000 +0100 @@ -1,0 +2,44 @@ +Tue Jan 3 19:42:17 UTC 2012 - [email protected] + +- Compile unwind-dw2-fde-glibc.c with -fno-strict-aliasing + (patch glibc-strict-aliasing.diff) +- Build on i686 a separate library for usage under Xen. + +------------------------------------------------------------------- +Tue Jan 3 15:36:12 UTC 2012 - [email protected] + +- Only use -mno-tls-direct-seg-refs on 32-bit x86, it's not needed + on x86-64. + +------------------------------------------------------------------- +Tue Jan 3 14:37:48 UTC 2012 - [email protected] + +- Cleanup spec file: + - experimental malloc is not experimental anymore and only option + (drop patch glibc-malloc-arena-max.diff) + - remove obsolete configure flags + +------------------------------------------------------------------- +Tue Jan 3 08:40:28 UTC 2012 - [email protected] + +- Update to 2ba92745c36e: + - Update copyright years + - Fix miscompilation of posix/regex_internal.c with GCC 4.7. + +------------------------------------------------------------------- +Tue Jan 3 08:23:44 UTC 2012 - [email protected] + +- Revert pthread-cond-wait change for now since it causes hangs + (patch pthread-cond-wait-revert.patch). + +------------------------------------------------------------------- +Mon Dec 26 12:53:55 UTC 2011 - [email protected] + +- Update to c0da14cdda1f (glibc-ports: 8a70b2dcabbf): + - new locales + - many bugfixes + - glibc 2.15 + - obsoletes tzfile-corruption-fix.patch, + glibc-2.14-32args-printf.patch + +------------------------------------------------------------------- @@ -12,0 +57,10 @@ +Mon Dec 5 09:29:32 UTC 2011 - [email protected] + +- Update to 52ad36a21973 (glibc-ports: 4a40b38f6355): + * fix many warnings + * bugfixes + * obsolete patches glibc-strict-aliasing.diff and + glibc-arm-clone-unwind-fix.diff + + +------------------------------------------------------------------- @@ -32,0 +87,15 @@ +Tue Nov 15 12:49:56 UTC 2011 - [email protected] + +- nscd now monitors resolv.conf, so simplify glibc-2.4.90-nscd.diff + patch and re-enable it +- Adjust and re-enable glibc-2.3.3-nscd-db-path.diff + +------------------------------------------------------------------- +Tue Nov 15 12:10:32 UTC 2011 - [email protected] + +- Update to 09f93bd3d6b1: + - Clean up internal fopen uses to always use close-on-exec + - Optimized strcasecmp and strncasecmp for SSSE3 and SSE4.2 on x86-32 + - bugfixes + +------------------------------------------------------------------- @@ -60,0 +130,29 @@ +Wed Nov 2 13:52:36 UTC 2011 - [email protected] + +- Update to d35dce5213b3: + - caching of network information for getaddrinfo + - bugfixes + +------------------------------------------------------------------- +Sat Oct 29 18:37:46 UTC 2011 - [email protected] + +- Update to 21b64b153631: + - various bugfixes + +------------------------------------------------------------------- +Thu Oct 27 08:44:14 UTC 2011 - [email protected] + +- Update to 804791474dc1: + - more libm optimizations +- Remove AMD libm routines due to new upstream libm optimizations + and interfaces. +- Fix build on x86. + +------------------------------------------------------------------- +Mon Oct 24 19:02:46 UTC 2011 - [email protected] + +- Update to a201fbcf9cc3: + - More libm optimizations + - Optimize wcslen, strnlen + +------------------------------------------------------------------- @@ -71,0 +170,14 @@ +Tue Oct 18 07:42:40 UTC 2011 - [email protected] + +- Update to glibc head 99ce7b04edf1: + - Optimize many libm functions + - Optimize access to isXYZ and toXYZ tables + - Optimized memcmp and wmemcmp for x86-64 and x86-32 + - Add parameter annotation to modf + - Support optimized isXXX functions in C++ code + - Optimized memchr, memrchr, rawmemchr for x86-32 + - Add nscd netgroupcache +- Disable libm-x86-64.diff.bz2 since it needs changes following the + libm optimzations. + +------------------------------------------------------------------- @@ -98,0 +211,12 @@ + +------------------------------------------------------------------- +Thu Sep 29 12:58:59 UTC 2011 - [email protected] + +- Update to 68577918437e: + * Obsoleted patches: glibc-gconvcache-s390.diff, + glibc-2.3.5-nscd-zeronegtimeout.diff, + glibc-x86-bits-sigcontext.patch, + glibc-2.15-getsysstats-speedup.patch, glibc-2.13-warnings.fix, + glibc-2.13-localedef.patch, + glibc-fix-rwlock-stack-imbalance.patch, glibc-2.15-vsyscall.patch, + glibc-2.15-avoid-vsyscall.patch Old: ---- glibc-2.13-localedef.patch glibc-2.13-warnings.fix glibc-2.14-32args-printf.patch glibc-2.14.1-4f2b767fef50.tar.bz2 glibc-2.15-avoid-vsyscall.patch glibc-2.15-getsysstats-speedup.patch glibc-2.15-ifunc-trace.patch glibc-2.15-vsyscall.patch glibc-2.3.3-amd64-s_ceil.diff glibc-2.3.5-nscd-zeronegtimeout.diff glibc-arm-clone-unwind-fix.diff glibc-fix-rwlock-stack-imbalance.patch glibc-gconvcache-s390.diff glibc-malloc-arena-max.diff glibc-ports-2.14.1.tar.bz2 glibc-ports-2.15-ifunc-trace.patch glibc-x86-bits-sigcontext.patch libm-x86-64-exceptions.diff libm-x86-64.diff.bz2 tzfile-corruption-fix.patch New: ---- glibc-2.15-2ba92745c36e.tar.bz2 glibc-2.15-nss_db-declarations.patch glibc-ports-2.15-8a70b2dcabbf.tar.bz2 pthread-cond-wait-revert.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.rzGzDY/_old 2012-01-06 11:44:12.000000000 +0100 +++ /var/tmp/diff_new_pack.rzGzDY/_new 2012-01-06 11:44:12.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -56,14 +56,6 @@ # 2.6.16 is the SLES 10 kernel, use this as oldest supported kernel # since many SUSE build machines have it %define enablekernel 2.6.16 -%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 @@ -77,15 +69,16 @@ %ifarch ppc Obsoletes: glibc-32bit %endif -Version: 2.14.1 -Release: 0 -%define git_id 4f2b767fef50 -%define glibc_ports_ver %version +Version: 2.15 +Release: 11 +%define git_id 2ba92745c36e +%define glibc_ports_ver 2.15 +%define ports_git_id 8a70b2dcabbf Url: http://www.gnu.org/software/libc/libc.html BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: glibc-%{version}-%{git_id}.tar.bz2 %define glibc_ports_dir glibc-ports-%{glibc_ports_ver} -Source2: http://ftp.gnu.org/gnu/glibc/glibc-ports-%{glibc_ports_ver}.tar.bz2 +Source2: glibc-ports-%{glibc_ports_ver}-%{ports_git_id}.tar.bz2 Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source8: nsswitch.conf @@ -130,23 +123,17 @@ # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch12: glibc-2.3.2.no_archive.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch13: libm-x86-64.diff.bz2 -# 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 Patch16: glibc-2.4.90-no_NO.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 # PATCH-FIX-OPENSUSE Fix gb18030 code bnc#54080 Patch21: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 -# PATCH-FIX-OPENSUSE Handle +# PATCH-FIX-OPENSUSE Handle timestamp, adjust nscd.conf Patch22: glibc-2.4.90-nscd.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines +# PATCH-FIX-OPENSUSE Fix path for nscd databases Patch23: glibc-2.3.3-nscd-db-path.diff -# PATCH-FIX-UPSTREAM - handle zero negative timeout, committed for glibc 2.15 -Patch24: glibc-2.3.5-nscd-zeronegtimeout.diff # PATCH-FIX-OPENSUSE prefer -lang rpm packages Patch25: glibc-2.3.90-langpackdir.diff # PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 [email protected] @@ -161,8 +148,6 @@ Patch36: glibc-no-unwind-tables.diff # 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 -Patch40: libm-x86-64-exceptions.diff # PATCH-FIX-OPENSUSE - Allow compilation with -altivec [email protected] Patch41: glibc-uio-cell.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines @@ -172,25 +157,11 @@ # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch47: glibc-nscd-hconf.diff # PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch48: glibc-malloc-arena-max.diff -# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch49: glibc-fini-unwind.diff -# PATCH-FIX-UPSTREAM install gconv-modules [email protected] -Patch50: glibc-gconvcache-s390.diff # PATCH-FIX-OPENSUSE bnc#657627 Patch52: glibc-elf-localscope.diff # FIX-OPENSUSE compile some files with -fno-strict-aliasing Patch58: glibc-strict-aliasing.diff -# 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-FIX-OPENSUSE Fix localedef locale-archive creation bso#10855 [email protected] -Patch63: glibc-2.13-localedef.patch -# PATCH-FIX-UPSTREAM Fix futex bug bso#12403 [email protected] -Patch64: glibc-fix-rwlock-stack-imbalance.patch # PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719 Patch65: glibc-fix-double-loopback.diff # PATCH-FEATURE-OPENSUSE Revert sunrpc removal [email protected] @@ -199,36 +170,26 @@ Patch67: glibc-revert-fseek-on-fclose.diff # PATCH-FIX-OPENSUSE Fix crash (access-after-free) in dl_lookup_x bnc#703140 [email protected] Patch68: glibc-fix-lookup-crash.patch -# PATCH-FIX-UPSTREAM Add vdso support to support Linux 3.1, fix order of relocations [email protected] -Patch70: glibc-2.15-vsyscall.patch # PATCH-FIX-OPENSUSE Do not trigger an abort when an i586 Intel CPU is running the i686 library, as valgrind does. bnc#681398 [email protected] Patch71: x86-cpuid-level2.patch -# PATCH-FIX-UPSTREAM Avoid use of vsyscall [email protected] -Patch72: glibc-2.15-avoid-vsyscall.patch # PATCH-FIX-UPSTREAM Fix assertion error in res_query.c (bso#13013) Patch73: glibc-resolv-assert.diff # PATCH-FIX-OPENSUSE Run ctors (bnc#717671) [email protected] Patch74: glibc-2.14-fix-ctors.patch -# PATCH-FIX-UPSTREAM Fix trace and ifuncs [email protected] -Patch75: glibc-2.15-ifunc-trace.patch -# PATCH-FIX-UPSTREAM Fix trace and ifuncs (talk to [email protected]) -Patch76: glibc-ports-2.15-ifunc-trace.patch +# PATCH-FIX-OPENSUSE Fix missing declarations +Patch75: glibc-2.15-nss_db-declarations.patch # PATCH-FEATURE-OPENSUSE -- add sha support to crypt_blowfish [email protected] Patch80: crypt_blowfish-1.2-sha.diff # PATCH-FEATURE-OPENSUSE -- use separate symbol version for Owl extensions - [email protected] Patch81: crypt_blowfish-1.2-versioning.diff # PATCH-FIX-OPENSUSE Avoid build failure on noexecstack marker on ARM [email protected] Patch82: crypt_blowfish-1.2-hack_around_arm.diff -# PATCH-FIX-UPSTREAM fix unwinding when using clone() -Patch83: glibc-arm-clone-unwind-fix.diff # PATCH-FIX-OPENSUSE avoid false positive warning that triggers brp postcheck fail Patch84: nscd-avoid-gcc-warning.diff -# PATCH-FIX-OPENSUSE fix printf with > 32 args and printf specifiers bnc#733140, bso#13446 -Patch85: glibc-2.14-32args-printf.patch -# PATCH-FIX-UPSTREAM fix tzfile heap overrun bnc#735850 - [email protected] -Patch86: tzfile-corruption-fix.patch # PATCH-FIX-OPENSUSE fixed build-compare by omitting one more date - [email protected] Patch87: glibc-nodate.patch +# PATCH-FIX-OPENSUSE revert pthread-cond-wait change since it causes hangs +Patch88: pthread-cond-wait-revert.patch %description The GNU C Library provides the most important standard libraries used @@ -387,17 +348,7 @@ %endif %prep -%ifarch %arm -# add glibc-ports for arm %setup -n glibc-%{version} -q -a 2 -a 3 -a 4 -pushd %glibc_ports_dir -%patch76 -p1 -%patch83 -p1 -popd -%else -# any other leave out ports -%setup -n glibc-%{version} -q -a 3 -a 4 -%endif # Owl crypt_blowfish tar -xzf %SOURCE50 pushd crypt_blowfish-%{crypt_bf_version} @@ -418,12 +369,8 @@ %patch7 %patch8 %patch12 -%patch13 -E -# We have s_sincos.c in patch13, remove duplicate -rm sysdeps/x86_64/fpu/s_sincos.S %patch14 %patch16 -%patch18 %patch20 # XXX Did not patch for 2.14: #%patch21 @@ -432,7 +379,6 @@ touch -r nscd/nscd_stat.c nscd/s-stamp %patch22 %patch23 -%patch24 touch -r nscd/s-stamp nscd/nscd_stat.c rm nscd/s-stamp %patch25 @@ -442,37 +388,24 @@ %patch33 %patch36 %patch38 -%patch40 %patch41 -p1 %patch45 %patch46 -p1 %patch47 -p1 -%if !%{exp_malloc} -%patch48 -p1 -%endif %patch49 -%patch50 %patch52 %patch58 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 %patch65 -p1 %patch66 -p1 %patch67 -p1 %patch68 -p1 -%patch70 -p1 %patch71 -p1 -%patch72 -p1 %patch73 -p1 %patch74 -p1 %patch75 -p1 %patch84 -%patch85 -%patch86 -p1 %patch87 -p0 +%patch88 -p1 -R # # Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! @@ -552,7 +485,9 @@ %ifarch hppa BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" %endif -%ifarch %ix86 x86_64 +%ifarch i386 i486 i586 +# Add this to avoid performance penalty on Xen for 32-bit x86 +# Note on i686 we build a special library BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" %endif # Add flags for all plattforms except AXP @@ -579,7 +514,7 @@ cd "cc-$dirname" %ifarch %arm # remove asynchronous-unwind-tables during configure as it causes - # some checks to fail spuriously on %arm + # some checks to fail spuriously on arm conf_cflags="${cflags/-fasynchronous-unwind-tables/}" conf_cflags="${conf_cflags/-funwind-tables/}" %else @@ -588,7 +523,7 @@ CFLAGS="$conf_cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ --prefix=%{_prefix} \ --libexecdir=%{_libdir} --infodir=%{_infodir} \ - --enable-add-ons=nptl$addons --without-cvs --enable-profile \ + --enable-add-ons=nptl$addons --enable-profile \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ @@ -600,10 +535,7 @@ %ifarch mipsel --without-fp \ %endif -%if %{exp_malloc} - --enable-experimental-malloc \ -%endif - --with-tls --with-__thread --enable-kernel=%{enablekernel} \ + --enable-kernel=%{enablekernel} \ --enable-bind-now # Should we enable --enable-nss-crypt to build use freebl3 hash functions? # explicitly set CFLAGS to use the full CFLAGS (not the reduced one for configure) @@ -616,6 +548,9 @@ # Build base glibc # configure_and_build_glibc base "$BuildFlags" "$add_ons" +%ifarch i686 + configure_and_build_glibc nosegneg "$BuildFlags -mno-tls-direct-seg-refs" "$add_ons" +%endif %else # # Build POWER-optimized glibc @@ -729,44 +664,63 @@ # Do not install in parallel, timezone Makefile will fail make install_root=%{buildroot} install -C cc-base +install_optimized_variant() { + local dirname="$1"; shift + local subdir="$1"; shift + local subdir_up="$1"; shift + +cd "cc-$dirname" +destdir=$RPM_BUILD_ROOT/%{_lib}/$subdir +mkdir -p $destdir +# Don't run a complete make install, we know which libraries +# we want +for lib in libc math/libm nptl/libpthread rt/librt nptl_db/libthread_db +do + libbase=${lib#*/} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Only install if different from base lib + if cmp -s ${lib}.so ../cc-base/${lib}.so; then + ln -sf $subdir_up/$libbaseso $destdir/$libbaseso + else + cp -a ${lib}.so $destdir/$libbaseso + fi + # Emulate ldconfig + ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) +done +cd .. +} +# Install i686 glibc for Xen +%ifarch i686 +install_optimized_variant nosegneg i686/nosegneg "../.." +%endif + # Install power-optimized glibc %if %{optimize_power} - # run ldconfig to create the library symlinks - # do not use the new ldconfig from the build directory because - # it may contain instructions not suitable for the cpu on the builhost - my_ldconfig=/sbin/ldconfig - for pcpu in \ %if %{powerpc_optimize_cpu_power4} - power4 \ + install_optimized_variant power4 power4 ".." %endif %if %{powerpc_optimize_cpu_power6} - power6 \ + install_optimized_variant power6 power6 ".." %endif %if %{powerpc_optimize_cpu_power7} - power7 \ + install_optimized_variant power7 power7 ".." %endif %if %{powerpc_optimize_cpu_cell} - ppc-cell-be \ + install_optimized_variant ppc-cell-be ppc-cell-be ".." %endif - ; do - 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 %{buildroot}/$pcpu/%{_lib}/$i.so %{buildroot}/%{_lib}/$pcpu - done - $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 + # doing a directory symlink doesnt work, ldconfig follows them and accepts only the first real dir 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 %{buildroot}/%{_lib}/power6x/$b + libbase=${b%.so} + libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) + # Emulate ldconfig + ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done - $my_ldconfig -n %{buildroot}/%{_lib}/power6x/ fi %endif %endif # optimize_power @@ -988,6 +942,8 @@ /%{_lib}/libnsl.so.1 /%{_lib}/libnss_compat-%{version}.so /%{_lib}/libnss_compat.so.2 +/%{_lib}/libnss_db-%{version}.so +/%{_lib}/libnss_db.so.2 /%{_lib}/libnss_dns-%{version}.so /%{_lib}/libnss_dns.so.2 /%{_lib}/libnss_files-%{version}.so @@ -1008,8 +964,7 @@ /%{_lib}/libthread_db.so.1 /%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 -%if %{optimize_power} - %define optimized_libs() \ +%define optimized_libs() \ %dir %attr(0755,root,root) /%{_lib}/%1\ /%{_lib}/%1/libc-%{version}.so\ /%{_lib}/%1/libc.so.6*\ @@ -1021,6 +976,12 @@ /%{_lib}/%1/librt.so.1\ /%{_lib}/%1/libthread_db-1.0.so\ /%{_lib}/%1/libthread_db.so.1 + +%ifarch i686 +%dir %attr(0755,root,root) /%{_lib}/i686 +%{optimized_libs i686/nosegneg} +%endif +%if %{optimize_power} %if %{powerpc_optimize_cpu_power4} %{optimized_libs power4} %endif @@ -1047,11 +1008,14 @@ %endif %{_bindir}/locale %{_bindir}/localedef +%{_bindir}/makedb %verify(not mode caps) %attr(4755,root,root) %{_libdir}/pt_chown %dir %attr(0755,root,root) %{_libdir}/getconf %{_libdir}/getconf/* %{_sbindir}/glibc_post_upgrade %{_sbindir}/iconvconfig +%dir /var/db +/var/db/Makefile %ifarch %ix86 @@ -1073,7 +1037,7 @@ %files devel %defattr(-,root,root) -%doc COPYING COPYING.LIB FAQ INSTALL NEWS NOTES README BUGS CONFORMANCE +%doc COPYING COPYING.LIB FAQ NEWS NOTES README BUGS CONFORMANCE %doc %{_mandir}/man1/catchsegv.1.gz %doc %{_mandir}/man1/rpcgen.1.gz %doc %{_mandir}/man1/sprof.1.gz @@ -1170,5 +1134,6 @@ %{_bindir}/pcprofiledump %{_bindir}/sotruss %{_bindir}/xtrace +%{_bindir}/pldd %changelog ++++++ getaddrinfo-ipv6-sanity.diff ++++++ --- /var/tmp/diff_new_pack.rzGzDY/_old 2012-01-06 11:44:12.000000000 +0100 +++ /var/tmp/diff_new_pack.rzGzDY/_new 2012-01-06 11:44:12.000000000 +0100 @@ -13,7 +13,7 @@ { const struct gaih_typeproto *tp = gaih_inet_typeproto; struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; -@@ -766,7 +766,7 @@ gaih_inet (const char *name, const struc +@@ -935,7 +935,7 @@ gaih_inet (const char *name, const struc if (fct != NULL) { if (req->ai_family == AF_INET6 @@ -22,7 +22,7 @@ { gethosts (AF_INET6, struct in6_addr); no_inet6_data = no_data; -@@ -2157,7 +2157,7 @@ getaddrinfo (const char *name, const cha +@@ -2418,7 +2418,7 @@ getaddrinfo (const char *name, const cha if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET || hints->ai_family == AF_INET6) { ++++++ glibc-2.14.1-4f2b767fef50.tar.bz2 -> glibc-2.15-2ba92745c36e.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/glibc/glibc-2.14.1-4f2b767fef50.tar.bz2 /work/SRC/openSUSE:Factory/.glibc.new/glibc-2.15-2ba92745c36e.tar.bz2 differ: char 11, line 1 ++++++ glibc-2.15-nss_db-declarations.patch ++++++ diff --git a/nss/nss_db/db-init.c b/nss/nss_db/db-init.c index 8228d61..85ac48f 100644 --- a/nss/nss_db/db-init.c +++ b/nss/nss_db/db-init.c @@ -18,6 +18,7 @@ 02111-1307 USA. */ #include <paths.h> +#include <string.h> #include <nscd/nscd.h> diff --git a/nss/nss_db/db-initgroups.c b/nss/nss_db/db-initgroups.c index aa8163b..1b806e5 100644 --- a/nss/nss_db/db-initgroups.c +++ b/nss/nss_db/db-initgroups.c @@ -22,6 +22,7 @@ #include <errno.h> #include <grp.h> #include <paths.h> +#include <string.h> #include "nss_db.h" ++++++ glibc-2.3.3-nscd-db-path.diff ++++++ --- /var/tmp/diff_new_pack.rzGzDY/_old 2012-01-06 11:44:12.000000000 +0100 +++ /var/tmp/diff_new_pack.rzGzDY/_new 2012-01-06 11:44:12.000000000 +0100 @@ -4,9 +4,11 @@ Index: nscd/nscd.h =================================================================== ---- nscd/nscd.h.orig +diff --git a/nscd/nscd.h b/nscd/nscd.h +index fdaf01b..23b6a94 100644 +--- nscd/nscd.h +++ nscd/nscd.h -@@ -105,10 +105,10 @@ struct database_dyn +@@ -113,11 +113,11 @@ struct database_dyn /* Paths of the file for the persistent storage. */ @@ -14,10 +16,12 @@ -#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group" -#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" -#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" +-#define _PATH_NSCD_NETGROUP_DB "/var/db/nscd/netgroup" +#define _PATH_NSCD_PASSWD_DB "/var/run/nscd/passwd" +#define _PATH_NSCD_GROUP_DB "/var/run/nscd/group" +#define _PATH_NSCD_HOSTS_DB "/var/run/nscd/hosts" +#define _PATH_NSCD_SERVICES_DB "/var/run/nscd/services" ++#define _PATH_NSCD_NETGROUP_DB "/var/run/nscd/netgroup" /* Path used when not using persistent storage. */ #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" ++++++ glibc-2.4.90-nscd.diff ++++++ --- /var/tmp/diff_new_pack.rzGzDY/_old 2012-01-06 11:44:12.000000000 +0100 +++ /var/tmp/diff_new_pack.rzGzDY/_new 2012-01-06 11:44:12.000000000 +0100 @@ -1,95 +1,3 @@ -Index: nscd/cache.c -=================================================================== ---- nscd/cache.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/cache.c 2010-02-14 14:58:08.000000000 +0100 -@@ -267,27 +267,29 @@ - if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) - { - struct stat64 st; -+ time_t mtime; - -- if (stat64 (table->filename, &st) < 0) -+ mtime = stat64 (table->filename, &st) ? LONG_MAX : st.st_mtime; -+ if (mtime != table->file_mtime) - { -- char buf[128]; -- /* We cannot stat() the file, disable file checking if the -- file does not exist. */ -- dbg_log (_("cannot stat() file `%s': %s"), -- table->filename, strerror_r (errno, buf, sizeof (buf))); -- if (errno == ENOENT) -- table->check_file = 0; -+ /* The file changed. Invalidate all entries. */ -+ now = LONG_MAX; -+ table->file_mtime = mtime; - } -- else -+ if (*table->filename2) - { -- if (st.st_mtime != table->file_mtime) -+ mtime = stat64 (table->filename2, &st) ? LONG_MAX : st.st_mtime; -+ if (mtime != table->file_mtime2) - { - /* The file changed. Invalidate all entries. */ - now = LONG_MAX; -- table->file_mtime = st.st_mtime; -+ table->file_mtime2 = mtime; - } - } - } -+ /* now == 0 means just check for changed files */ -+ if (now == (time_t)0) -+ return 0; - - /* We run through the table and find values which are not valid anymore. - -Index: nscd/connections.c -=================================================================== ---- nscd/connections.c.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/connections.c 2010-02-14 14:58:08.000000000 +0100 -@@ -119,6 +119,7 @@ struct database_dyn dbs[lastdb] = - .suggested_module = DEFAULT_SUGGESTED_MODULE, - .reset_res = 0, - .filename = "/etc/passwd", -+ .filename2 = "", - .db_filename = _PATH_NSCD_PASSWD_DB, - .disabled_iov = &pwd_iov_disabled, - .postimeout = 3600, -@@ -140,6 +141,7 @@ struct database_dyn dbs[lastdb] = - .suggested_module = DEFAULT_SUGGESTED_MODULE, - .reset_res = 0, - .filename = "/etc/group", -+ .filename2 = "", - .db_filename = _PATH_NSCD_GROUP_DB, - .disabled_iov = &grp_iov_disabled, - .postimeout = 3600, -@@ -161,6 +163,7 @@ struct database_dyn dbs[lastdb] = - .suggested_module = DEFAULT_SUGGESTED_MODULE, - .reset_res = 1, - .filename = "/etc/hosts", -+ .filename2 = "/etc/resolv.conf", - .db_filename = _PATH_NSCD_HOSTS_DB, - .disabled_iov = &hst_iov_disabled, - .postimeout = 3600, -@@ -855,15 +858,9 @@ cannot set socket to close on exec: %s; - /* We need the modification date of the file. */ - struct stat64 st; - -- if (stat64 (dbs[cnt].filename, &st) < 0) -- { -- /* We cannot stat() the file, disable file checking. */ -- dbg_log (_("cannot stat() file `%s': %s"), -- dbs[cnt].filename, strerror (errno)); -- dbs[cnt].check_file = 0; -- } -- else -- dbs[cnt].file_mtime = st.st_mtime; -+ dbs[cnt].file_mtime = stat64 (dbs[cnt].filename, &st) ? LONG_MAX : st.st_mtime; -+ if (*dbs[cnt].filename2) -+ dbs[cnt].file_mtime2 = stat64 (dbs[cnt].filename2, &st) ? LONG_MAX : st.st_mtime; - } - } - Index: nscd/nscd.conf =================================================================== --- nscd/nscd.conf.orig 2010-01-18 18:01:41.000000000 +0100 @@ -109,21 +17,6 @@ shared hosts yes max-db-size hosts 33554432 -Index: nscd/nscd.h -=================================================================== ---- nscd/nscd.h.orig 2010-01-18 18:01:41.000000000 +0100 -+++ nscd/nscd.h 2010-02-14 14:59:07.000000000 +0100 -@@ -80,8 +80,10 @@ struct database_dyn - int propagate; - int reset_res; - const char filename[16]; -+ const char filename2[17]; - const char *db_filename; - time_t file_mtime; -+ time_t file_mtime2; - size_t suggested_module; - size_t max_db_size; - Index: nscd/nscd_stat.c =================================================================== --- nscd/nscd_stat.c.orig 2010-01-18 18:01:41.000000000 +0100 @@ -143,12 +36,3 @@ /* Statistic data for one database. */ struct dbstat -@@ -302,7 +307,7 @@ receive_print_stats (void) - data.dbs[i].maxnsearched, - data.dbs[i].rdlockdelayed, - data.dbs[i].wrlockdelayed, -- data.dbs[i].addfailed, check_file, dbnames[i]); -+ data.dbs[i].addfailed, check_file, (strcmp(dbnames[i], "hosts") ? dbnames[i] : "{hosts,resolv.conf}")); - } - - if (selinux_enabled) ++++++ glibc-compiled-binaries.diff ++++++ --- /var/tmp/diff_new_pack.rzGzDY/_old 2012-01-06 11:44:12.000000000 +0100 +++ /var/tmp/diff_new_pack.rzGzDY/_new 2012-01-06 11:44:12.000000000 +0100 @@ -21,9 +21,9 @@ # Build tools. Index: configure.in =================================================================== ---- configure.in.orig 2011-05-20 15:39:31.237690293 +0200 -+++ configure.in 2011-05-20 15:43:55.595111363 +0200 -@@ -16,6 +16,7 @@ +--- configure.in.orig ++++ configure.in +@@ -16,6 +16,7 @@ if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) @@ -33,9 +33,9 @@ AC_PROG_CXX Index: configure =================================================================== ---- configure.orig 2011-05-20 15:46:40.675628746 +0200 -+++ configure 2011-05-20 15:40:52.292884126 +0200 -@@ -545,6 +545,7 @@ +--- configure.orig ++++ configure +@@ -554,6 +554,7 @@ ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no @@ -43,7 +43,7 @@ subdirs= MFLAGS= MAKEFLAGS= -@@ -697,6 +696,7 @@ +@@ -706,6 +707,7 @@ CXXFLAGS CXX CPP cross_compiling @@ -51,7 +51,7 @@ BUILD_CC OBJEXT ac_ct_CC -@@ -1244,6 +1242,13 @@ +@@ -1250,6 +1252,13 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done @@ -65,7 +65,7 @@ # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. -@@ -1266,6 +1257,7 @@ +@@ -1265,6 +1274,7 @@ if test "x$host_alias" != x; then If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -73,9 +73,9 @@ fi fi -@@ -1454,6 +1444,9 @@ - --enable-experimental-malloc - enable experimental malloc features +@@ -1450,6 +1460,9 @@ Optional Features: + --enable-multi-arch enable single DSO with optimizations for multiple + architectures --enable-nss-crypt enable libcrypt to use nss + --enable-runbinaries the compiled binaries should run on the buildhost because + it happens to have a compatible cpu @@ -87,7 +87,7 @@ =================================================================== --- posix/Makefile.orig +++ posix/Makefile -@@ -302,7 +302,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi +@@ -320,7 +320,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi done < $(objpfx)getconf.speclist $(objpfx)getconf.speclist: $(objpfx)getconf @@ -100,7 +100,7 @@ =================================================================== --- sunrpc/Makefile.orig +++ sunrpc/Makefile -@@ -98,7 +98,7 @@ otherlibs += $(nssobjdir)/libnss_files.a +@@ -108,7 +108,7 @@ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libresolv.a endif ++++++ glibc-strict-aliasing.diff ++++++ --- /var/tmp/diff_new_pack.rzGzDY/_old 2012-01-06 11:44:12.000000000 +0100 +++ /var/tmp/diff_new_pack.rzGzDY/_new 2012-01-06 11:44:12.000000000 +0100 @@ -10,78 +10,3 @@ endif before-compile = $(objpfx)trusted-dirs.h -Index: inet/Makefile -=================================================================== ---- inet/Makefile.orig -+++ inet/Makefile -@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa - - include ../Rules - -+CFLAGS-tst-inet6_rth.c = -fno-strict-aliasing -+ - ifeq ($(have-thread-library),yes) - - CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions -Index: nis/Makefile -=================================================================== ---- nis/Makefile.orig -+++ nis/Makefile -@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out - - include ../Rules - -+CFLAGS-nis_findserv.c = -fno-strict-aliasing -+CFLAGS-ypclnt.c = -fno-strict-aliasing - - $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) - $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ -Index: nss/Makefile -=================================================================== ---- nss/Makefile.orig -+++ nss/Makefile -@@ -75,6 +75,7 @@ endif - - include ../Rules - -+CFLAGS-files-hosts.c = -fno-strict-aliasing - - ifeq (yes,$(build-static-nss)) - $(objpfx)getent: $(objpfx)libnss_files.a -Index: resolv/Makefile -=================================================================== ---- resolv/Makefile.orig -+++ resolv/Makefile -@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb - -Dgetnetbyaddr=res_getnetbyaddr - - CFLAGS-res_hconf.c = -fexceptions -+CFLAGS-res_send.c = -fno-strict-aliasing - - # The BIND code elicits some harmless warnings. - +cflags += -Wno-strict-prototypes -Wno-write-strings -Index: sunrpc/Makefile -=================================================================== ---- sunrpc/Makefile.orig -+++ sunrpc/Makefile -@@ -152,6 +152,10 @@ CFLAGS-openchild.c = -fexceptions - - CPPFLAGS += -D_RPC_THREAD_SAFE_ - -+CFLAGS-clnt_tcp.c = -fno-strict-aliasing -+CFLAGS-clnt_udp.c = -fno-strict-aliasing -+CFLAGS-clnt_unix.c = -fno-strict-aliasing -+ - $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so - $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so -Index: sysdeps/powerpc/powerpc64/elf/Makefile -=================================================================== ---- sysdeps/powerpc/powerpc64/elf/Makefile.orig -+++ sysdeps/powerpc/powerpc64/elf/Makefile -@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re - CFLAGS-rtld-memmove.os = $(no-special-regs) - CFLAGS-rtld-memchr.os = $(no-special-regs) - CFLAGS-rtld-strnlen.os = $(no-special-regs) -+ -+CFLAGS-gmon-start.c = -fno-strict-aliasing ++++++ pthread-cond-wait-revert.patch ++++++ http://sourceware.org/ml/libc-alpha/2012-01/msg00002.html The following patch: Has been reported as causing numerous problems in Fedora & Debian. I don't think anyone has done any serious analysis of the issue, but the patch has been pulled from both distributions because of the instability it's introduced. https://bugzilla.redhat.com/show_bug.cgi?id=769421 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651899 commit c5a0802a682dba23f92d47f0f99775aebfbe2539 Author: Andreas Schwab <[email protected]> Date: Mon Nov 28 13:38:19 2011 +0100 Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI 2011-11-28 Andreas Schwab <[email protected]> * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S index 53970d7..54590b7 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S @@ -134,6 +134,7 @@ __pthread_cond_wait: cmpl $PI_BIT, %eax jne 18f +90: movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx movl %ebp, %edx xorl %esi, %esi @@ -147,6 +148,9 @@ __pthread_cond_wait: sete 16(%esp) je 19f + cmpl $-EAGAIN, %eax + je 91f + /* Normal and PI futexes dont mix. Use normal futex functions only if the kernel does not support the PI futex functions. */ cmpl $-ENOSYS, %eax @@ -391,6 +395,78 @@ __pthread_cond_wait: #endif call __lll_unlock_wake jmp 11b + +91: +.LcleanupSTART2: + /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to + call it again. */ + + /* Get internal lock. */ + movl $1, %edx + xorl %eax, %eax + LOCK +#if cond_lock == 0 + cmpxchgl %edx, (%ebx) +#else + cmpxchgl %edx, cond_lock(%ebx) +#endif + jz 92f + +#if cond_lock == 0 + movl %ebx, %edx +#else + leal cond_lock(%ebx), %edx +#endif +#if (LLL_SHARED-LLL_PRIVATE) > 255 + xorl %ecx, %ecx +#endif + cmpl $-1, dep_mutex(%ebx) + setne %cl + subl $1, %ecx + andl $(LLL_SHARED-LLL_PRIVATE), %ecx +#if LLL_PRIVATE != 0 + addl $LLL_PRIVATE, %ecx +#endif + call __lll_lock_wait + +92: + /* Increment the cond_futex value again, so it can be used as a new + expected value. */ + addl $1, cond_futex(%ebx) + movl cond_futex(%ebx), %ebp + + /* Unlock. */ + LOCK +#if cond_lock == 0 + subl $1, (%ebx) +#else + subl $1, cond_lock(%ebx) +#endif + je 93f +#if cond_lock == 0 + movl %ebx, %eax +#else + leal cond_lock(%ebx), %eax +#endif +#if (LLL_SHARED-LLL_PRIVATE) > 255 + xorl %ecx, %ecx +#endif + cmpl $-1, dep_mutex(%ebx) + setne %cl + subl $1, %ecx + andl $(LLL_SHARED-LLL_PRIVATE), %ecx +#if LLL_PRIVATE != 0 + addl $LLL_PRIVATE, %ecx +#endif + call __lll_unlock_wake + +93: + /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ + xorl %ecx, %ecx + movl dep_mutex(%ebx), %edi + jmp 90b +.LcleanupEND2: + .size __pthread_cond_wait, .-__pthread_cond_wait versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_3_2) @@ -563,6 +639,10 @@ __condvar_w_cleanup: .long .LcleanupEND-.Lsub_cond_futex .long __condvar_w_cleanup-.LSTARTCODE .uleb128 0 + .long .LcleanupSTART2-.LSTARTCODE + .long .LcleanupEND2-.LcleanupSTART2 + .long __condvar_w_cleanup-.LSTARTCODE + .uleb128 0 .long .LcallUR-.LSTARTCODE .long .LENDCODE-.LcallUR .long 0 diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S index 7535baa..d837d15 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S @@ -23,6 +23,7 @@ #include <lowlevelcond.h> #include <tcb-offsets.h> #include <pthread-pi-defines.h> +#include <pthread-errnos.h> #include <kernel-features.h> @@ -133,11 +134,14 @@ __pthread_cond_wait: cmpl $PI_BIT, %eax jne 61f +90: movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi movl $SYS_futex, %eax syscall movl $1, %r8d + cmpq $-EAGAIN, %rax + je 91f #ifdef __ASSUME_REQUEUE_PI jmp 62f #else @@ -324,6 +328,70 @@ __pthread_cond_wait: 13: movq %r10, %rax jmp 14b + +91: +.LcleanupSTART2: + /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to + call it again. */ + movq 8(%rsp), %rdi + + /* Get internal lock. */ + movl $1, %esi + xorl %eax, %eax + LOCK +#if cond_lock == 0 + cmpxchgl %esi, (%rdi) +#else + cmpxchgl %esi, cond_lock(%rdi) +#endif + jz 92f + +#if cond_lock != 0 + addq $cond_lock, %rdi +#endif + cmpq $-1, dep_mutex-cond_lock(%rdi) + movl $LLL_PRIVATE, %eax + movl $LLL_SHARED, %esi + cmovne %eax, %esi + callq __lll_lock_wait +#if cond_lock != 0 + subq $cond_lock, %rdi +#endif +92: + /* Increment the cond_futex value again, so it can be used as a new + expected value. */ + incl cond_futex(%rdi) + movl cond_futex(%rdi), %edx + + /* Release internal lock. */ + LOCK +#if cond_lock == 0 + decl (%rdi) +#else + decl cond_lock(%rdi) +#endif + jz 93f + +#if cond_lock != 0 + addq $cond_lock, %rdi +#endif + cmpq $-1, dep_mutex-cond_lock(%rdi) + movl $LLL_PRIVATE, %eax + movl $LLL_SHARED, %esi + cmovne %eax, %esi + /* The call preserves %rdx. */ + callq __lll_unlock_wake +#if cond_lock != 0 + subq $cond_lock, %rdi +#endif +93: + /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ + xorq %r10, %r10 + movq dep_mutex(%rdi), %r8 + leaq cond_futex(%rdi), %rdi + jmp 90b +.LcleanupEND2: + .size __pthread_cond_wait, .-__pthread_cond_wait versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_3_2) @@ -476,11 +544,15 @@ __condvar_cleanup1: .uleb128 .LcleanupSTART-.LSTARTCODE .uleb128 .LcleanupEND-.LcleanupSTART .uleb128 __condvar_cleanup1-.LSTARTCODE - .uleb128 0 + .uleb128 0 + .uleb128 .LcleanupSTART2-.LSTARTCODE + .uleb128 .LcleanupEND2-.LcleanupSTART2 + .uleb128 __condvar_cleanup1-.LSTARTCODE + .uleb128 0 .uleb128 .LcallUR-.LSTARTCODE .uleb128 .LENDCODE-.LcallUR .uleb128 0 - .uleb128 0 + .uleb128 0 .Lcstend: -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
