Hello community, here is the log from the commit of package glibc checked in at Mon Oct 30 17:58:18 CET 2006. -------- --- glibc/glibc.changes 2006-10-18 18:47:41.000000000 +0200 +++ /mounts/work_src_done/STABLE/glibc/glibc.changes 2006-10-30 14:22:22.000000000 +0100 @@ -1,0 +2,13 @@ +Wed Oct 25 22:23:48 CEST 2006 - pbaudis@suse.cz + +- Change ld.so madvise() call to posix_fadvise() +- Fix mallopt(M_MXFAST,0) behaviour [#198760] +- Update the powerpc cpu-tuned environment to v0.04 [#215117] + +------------------------------------------------------------------- +Sun Oct 22 21:59:49 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.03 [#212549] +- Improve glibc powerpc optimization [#212548,#212580,#214282] + +------------------------------------------------------------------- New: ---- glibc-2.5-mallopt.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.U8VSGf/_old 2006-10-30 17:57:29.000000000 +0100 +++ /var/tmp/diff_new_pack.U8VSGf/_new 2006-10-30 17:57:29.000000000 +0100 @@ -18,7 +18,13 @@ %define enable_stackguard_randomization 0 %ifarch ppc ppc64 %define optimize_power 1 -%define powerpc_optimize_cpu_list power4 power5 +%define powerpc_optimize_cpu_power4 1 +%define powerpc_optimize_cpu_power5 1 +%if %suse_version > 1010 +%define powerpc_optimize_cpu_power6 1 +%else +%define powerpc_optimize_cpu_power6 0 +%endif %else %define optimize_power 0 %endif @@ -28,7 +34,7 @@ Obsoletes: ngpt ngpt-devel Autoreqprov: on Version: 2.5 -Release: 10 +Release: 16 %define snapshot_date 2006101200 URL: http://www.gnu.org/software/libc/libc.html PreReq: filesystem @@ -76,6 +82,7 @@ Patch32: crypt_blowfish-1.0.diff Patch33: glibc-2.4.90-bdirect.diff Patch34: glibc-2.5-ldconfig-old-cache.diff +Patch35: glibc-2.5-mallopt.diff %description The GNU C Library provides the most important standard libraries used @@ -239,6 +246,7 @@ %patch32 %patch33 %patch34 +%patch35 %patch5 find . -name configure | xargs touch @@ -258,6 +266,7 @@ # Default CFLAGS and Compiler # BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -fno-strict-aliasing" +BuildTuneFLags="" BuildCC="gcc" BuildCCplus="g++" add_ons=",libidn" @@ -283,7 +292,11 @@ %ifarch ppc ppc64 BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" %endif +%ifarch ppc +BuildTuneFLags="-mtune=G4" +%endif %ifarch ppc64 +BuildTuneFLags="-mtune=rs64" BuildCC="$BuildCC -m64" BuildCCplus="$BuildCCplus -m64" %endif @@ -324,14 +337,23 @@ # mkdir cc-nptl cd cc-nptl -configure_and_build_glibc "$BuildFlags" "$add_ons" +configure_and_build_glibc "$BuildFlags $BuildTuneFLags" "$add_ons" cd .. %if %{optimize_power} # # Build POWER optimized # -for pcpu in %{powerpc_optimize_cpu_list} -do +for pcpu in \ +%if %{powerpc_optimize_cpu_power4} +power4 \ +%endif +%if %{powerpc_optimize_cpu_power5} +power5 \ +%endif +%if %{powerpc_optimize_cpu_power6} +power6 \ +%endif +; do mkdir cc-$pcpu cd cc-$pcpu configure_and_build_glibc "$BuildFlags -mcpu=$pcpu" "$add_ons,powerpc-cpu" --with-cpu=$pcpu @@ -378,8 +400,17 @@ # Do not install in parallel, timezone Makefile will fail make install_root=$RPM_BUILD_ROOT install -C cc-nptl %if %{optimize_power} -for pcpu in %{powerpc_optimize_cpu_list} -do +for pcpu in \ +%if %{powerpc_optimize_cpu_power4} +power4 \ +%endif +%if %{powerpc_optimize_cpu_power5} +power5 \ +%endif +%if %{powerpc_optimize_cpu_power6} +power6 \ +%endif +; do make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu mkdir $RPM_BUILD_ROOT/%{_lib}/$pcpu for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version} @@ -389,6 +420,7 @@ $RPM_BUILD_ROOT/sbin/ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ rm -rf $RPM_BUILD_ROOT/$pcpu done +%if %{powerpc_optimize_cpu_power5} # power5+ is compatible with power5 (adds only a few floating point instructions) # doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir if test -d $RPM_BUILD_ROOT/%{_lib}/power5 @@ -399,6 +431,7 @@ $RPM_BUILD_ROOT/sbin/ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ fi %endif +%endif %if %{build_locales} # Do not install locales in parallel! cd cc-nptl @@ -619,6 +652,7 @@ /%{_lib}/libutil-%{version}.so /%{_lib}/libutil.so.1 %if %{optimize_power} +%if %{powerpc_optimize_cpu_power4} %dir %attr(0755,root,root) /%{_lib}/power4 /%{_lib}/power4/libc-%{version}.so /%{_lib}/power4/libc.so.6* @@ -630,6 +664,8 @@ /%{_lib}/power4/librt.so.1 /%{_lib}/power4/libthread_db-1.0.so /%{_lib}/power4/libthread_db.so.1 +%endif +%if %{powerpc_optimize_cpu_power5} %dir %attr(0755,root,root) /%{_lib}/power5 /%{_lib}/power5/libc-%{version}.so /%{_lib}/power5/libc.so.6* @@ -653,6 +689,20 @@ /%{_lib}/power5+/libthread_db-1.0.so /%{_lib}/power5+/libthread_db.so.1 %endif +%if %{powerpc_optimize_cpu_power6} +%dir %attr(0755,root,root) /%{_lib}/power6 +/%{_lib}/power6/libc-%{version}.so +/%{_lib}/power6/libc.so.6* +/%{_lib}/power6/libm-%{version}.so +/%{_lib}/power6/libm.so.6* +/%{_lib}/power6/libpthread-%{version}.so +/%{_lib}/power6/libpthread.so.0 +/%{_lib}/power6/librt-%{version}.so +/%{_lib}/power6/librt.so.1 +/%{_lib}/power6/libthread_db-1.0.so +/%{_lib}/power6/libthread_db.so.1 +%endif +%endif /sbin/ldconfig /usr/bin/gencat /usr/bin/getconf @@ -798,6 +848,13 @@ %{_libdir}/libdl_p.a %changelog -n glibc +* Wed Oct 25 2006 - pbaudis@suse.cz +- Change ld.so madvise() call to posix_fadvise() +- Fix mallopt(M_MXFAST,0) behaviour [#198760] +- Update the powerpc cpu-tuned environment to v0.04 [#215117] +* Sun Oct 22 2006 - pbaudis@suse.cz +- Update the powerpc cpu-tuned environment to v0.03 [#212549] +- Improve glibc powerpc optimization [#212548,#212580,#214282] * Tue Oct 17 2006 - mls@suse.de - add ldconfig-old-cache patch to speed up ldconfig * Sat Oct 14 2006 - olh@suse.de ++++++ glibc-2.3.90-ld.so-madvise.diff ++++++ --- /var/tmp/diff_new_pack.U8VSGf/_old 2006-10-30 17:57:30.000000000 +0100 +++ /var/tmp/diff_new_pack.U8VSGf/_new 2006-10-30 17:57:30.000000000 +0100 @@ -1,18 +1,22 @@ ---- elf/dl-load.c -+++ elf/dl-load.c 2005/12/20 13:06:17 -@@ -1192,6 +1192,9 @@ +Index: elf/dl-load.c +=================================================================== +--- elf/dl-load.c.orig ++++ elf/dl-load.c +@@ -1219,6 +1219,9 @@ cannot allocate TLS data structures for goto call_lose_errno; } + if (GLRO(dl_madvise)) -+ __madvise ((void *) l->l_map_start, maplength, MADV_WILLNEED); ++ posix_fadvise (fd, c->mapoff, maplength, POSIX_FADV_WILLNEED); + l->l_map_end = l->l_map_start + maplength; l->l_addr = l->l_map_start - c->mapstart; ---- elf/dl-support.c -+++ elf/dl-support.c 2005/12/20 13:06:17 -@@ -41,6 +41,7 @@ +Index: elf/dl-support.c +=================================================================== +--- elf/dl-support.c.orig ++++ elf/dl-support.c +@@ -41,6 +41,7 @@ size_t _dl_platformlen; int _dl_debug_mask; int _dl_lazy; @@ -20,7 +24,7 @@ ElfW(Addr) _dl_use_load_bias = -2; int _dl_dynamic_weak; -@@ -240,6 +241,8 @@ +@@ -240,6 +241,8 @@ _dl_non_dynamic_init (void) _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0'; @@ -29,9 +33,11 @@ _dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0'; _dl_dynamic_weak = *(getenv ("LD_DYNAMIC_WEAK") ?: "") == '\0'; ---- elf/rtld.c -+++ elf/rtld.c 2005/12/20 13:09:05 -@@ -152,6 +152,7 @@ +Index: elf/rtld.c +=================================================================== +--- elf/rtld.c.orig ++++ elf/rtld.c +@@ -152,6 +152,7 @@ struct rtld_global_ro _rtld_global_ro at ._dl_lazy = 1, ._dl_fpu_control = _FPU_DEFAULT, ._dl_pointer_guard = 1, @@ -39,7 +45,7 @@ /* Function pointers. */ ._dl_debug_printf = _dl_debug_printf, -@@ -2552,6 +2553,14 @@ +@@ -2619,6 +2620,14 @@ process_envvars (enum mode *modep) break; case 9: @@ -54,19 +60,11 @@ /* Test whether we want to see the content of the auxiliary array passed up from the kernel. */ if (!INTUSE(__libc_enable_secure) ---- include/sys/mman.h -+++ include/sys/mman.h 2005/12/20 13:06:17 -@@ -8,6 +8,7 @@ - int __flags, int __fd, __off64_t __offset); - extern int __munmap (void *__addr, size_t __len); - extern int __mprotect (void *__addr, size_t __len, int __prot); -+extern int __madvise (void *__addr, size_t __len, int __advise); - - /* This one is Linux specific. */ - extern void *__mremap (void *__addr, size_t __old_len, ---- sysdeps/generic/ldsodefs.h -+++ sysdeps/generic/ldsodefs.h 2005/12/20 13:06:17 -@@ -610,6 +610,9 @@ +Index: sysdeps/generic/ldsodefs.h +=================================================================== +--- sysdeps/generic/ldsodefs.h.orig ++++ sysdeps/generic/ldsodefs.h +@@ -567,6 +567,9 @@ struct rtld_global_ro /* Do we do lazy relocations? */ EXTERN int _dl_lazy; @@ -76,14 +74,3 @@ /* Nonzero if runtime lookups should not update the .got/.plt. */ EXTERN int _dl_bind_not; ---- sysdeps/unix/sysv/linux/syscalls.list -+++ sysdeps/unix/sysv/linux/syscalls.list 2005/12/20 13:06:17 -@@ -34,7 +34,7 @@ - klogctl EXTRA syslog i:isi klogctl - lchown - lchown i:sii __lchown lchown - posix_madvise - madvise Vi:pii posix_madvise --madvise - madvise i:pii madvise -+madvise - madvise i:pii __madvise madvise - mincore - mincore i:anV mincore - mlock - mlock i:bn mlock - mlockall - mlockall i:i mlockall ++++++ glibc-2.5-mallopt.diff ++++++ Fix mallopt(M_MXFAST,0) as per bug 198760: From: drepper <drepper> Date: Fri, 13 Oct 2006 20:29:08 +0000 (+0000) Subject: (do_check_malloc_state): Only require for empty bins for large sizes X-Git-Url: http://repo.or.cz/w/glibc-cvs.git?a=commitdiff_plain;h=69b98c371d15f3adedb27... (do_check_malloc_state): Only require for empty bins for large sizes in main arena. --- diff --git a/malloc/malloc.c b/malloc/malloc.c index c385529..e4b693c 100644 --- malloc/malloc.c +++ malloc/malloc.c @@ -2741,8 +2741,19 @@ static void do_check_malloc_state(mstate for (i = 0; i < NFASTBINS; ++i) { p = av->fastbins[i]; + /* The following test can only be performed for the main arena. + While mallopt calls malloc_consolidate to get rid of all fast + bins (especially those larger than the new maximum) this does + only happen for the main arena. Trying to do this for any + other arena would mean those arenas have to be locked and + malloc_consolidate be called for them. This is excessive. And + even if this is acceptable to somebody it still cannot solve + the problem completely since if the arena is locked a + concurrent malloc call might create a new arena which then + could use the newly invalid fast bins. */ + /* all bins past max_fast are empty */ - if (i > max_fast_bin) + if (av == &main_arena && i > max_fast_bin) assert(p == 0); while (p != 0) { From: drepper <drepper> Date: Fri, 13 Oct 2006 20:52:01 +0000 (+0000) Subject: (malloc_consolidate): Don't use get_fast_max to determine highest fast bin X-Git-Url: http://repo.or.cz/w/glibc-cvs.git?a=commitdiff_plain;h=22fa53f334c93e74c2139... (malloc_consolidate): Don't use get_fast_max to determine highest fast bin to consolidate, always look into all of them. --- diff --git a/malloc/malloc.c b/malloc/malloc.c index e4b693c..38ceb1e 100644 --- malloc/malloc.c +++ malloc/malloc.c @@ -4692,7 +4692,15 @@ #endif reused anyway. */ +#if 0 + /* It is wrong to limit the fast bins to search using get_max_fast + because, except for the main arena, all the others might have + blocks in the high fast bins. It's not worth it anyway, just + search all bins all the time. */ maxfb = &(av->fastbins[fastbin_index(get_max_fast ())]); +#else + maxfb = &(av->fastbins[NFASTBINS]); +#endif fb = &(av->fastbins[0]); do { if ( (p = *fb) != 0) { From: drepper <drepper> Date: Wed, 18 Oct 2006 19:06:27 +0000 (+0000) Subject: (malloc_consolidate): Set maxfb to address of last fastbin rather than X-Git-Url: http://repo.or.cz/w/glibc-cvs.git?a=commitdiff_plain;h=9b855a172a6952d1d82f0... (malloc_consolidate): Set maxfb to address of last fastbin rather than end of fastbin array. --- diff --git a/malloc/malloc.c b/malloc/malloc.c index 38ceb1e..4cbce04 100644 --- malloc/malloc.c +++ malloc/malloc.c @@ -4699,7 +4699,7 @@ #if 0 search all bins all the time. */ maxfb = &(av->fastbins[fastbin_index(get_max_fast ())]); #else - maxfb = &(av->fastbins[NFASTBINS]); + maxfb = &(av->fastbins[NFASTBINS - 1]); #endif fb = &(av->fastbins[0]); do { ++++++ powerpc-cpu.tar.gz ++++++ ++++ 5405 lines of diff (skipped) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org