Mailinglist Archive: opensuse-commit (1670 mails)

< Previous Next >
commit glibc
  • From: root@xxxxxxx (h_root)
  • Date: Mon, 30 Oct 2006 17:58:18 +0100 (CET)
  • Message-id: <20061030165818.6C80784787@xxxxxxxxxxxxxxx>

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@xxxxxxx
+
+- 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@xxxxxxx
+
+- 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@xxxxxxx
+- 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@xxxxxxx
+- Update the powerpc cpu-tuned environment to v0.03 [#212549]
+- Improve glibc powerpc optimization [#212548,#212580,#214282]
* Tue Oct 17 2006 - mls@xxxxxxx
- add ldconfig-old-cache patch to speed up ldconfig
* Sat Oct 14 2006 - olh@xxxxxxx




++++++ 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=69b98c371d15f3adedb27796eb6672ca39826101;hp=d2e9be1b3ccded905ad88c6322e237eba6dee4e4

(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=22fa53f334c93e74c2139a14b5a6a14dae827b46;hp=0763378581f1a08c6a355e2d1fa5a403c68243e5

(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=9b855a172a6952d1d82f0437b5e8490649f87d71;hp=a1fd61e8894788273fa1cf355df0dc2aecbf269c

(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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
List Navigation