Recent glibc locale changes on ia64.
H . J . Lu
hjl@valinux.com
Fri Sep 8 11:47:00 GMT 2000
On Thu, Sep 07, 2000 at 09:30:29PM -0700, Ulrich Drepper wrote:
> "David S. Miller" <davem@redhat.com> writes:
>
> > >From the descriptions I've seen of this problem, it sounds a lot like
> > yet another unaligned memory access problem in the locale code.
>
> No. You should not jump to such a conclusion without looking at the
> code. Every place where locale data is accessed word-wise is
> protected with asserts to ensure alignment.
This is my currect patch to get "make check" to pass iconvdata under
ia64. I have no idea what this patch
2000-09-03 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_dl.c (do_release_shlib): Don't decrement the counter
below -TRIES_BEFORE_UNLOAD-1, to avoid wraparound.
is supposed to fix. It looks completely bogus to me. The only place it
gets decremented is
assert (obj->counter > 0);
--obj->counter;
Even if it gets decremented by some magic, its logic looks very strange
to me. Bruno, do you have a testcase for your patch? I'd like to see it
myself.
BTW, it also passed "make check" under ia32.
Thanks.
H.J.
---
2000-09-08 H.J. Lu <hjl@gnu.org>
* iconv/gconv_dl.c (do_release_shlib): Remove the bogus patch
made on 2000-09-03 by Bruno Haible <haible@clisp.cons.org>.
2000-09-08 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
* sysdeps/ia64/Makefile (sysdep-rtld-routines): New variable.
Index: iconv/gconv_dl.c
===================================================================
RCS file: /work/cvs/gnu/glibc/iconv/gconv_dl.c,v
retrieving revision 1.1.1.3
diff -u -p -r1.1.1.3 gconv_dl.c
--- iconv/gconv_dl.c 2000/09/05 04:02:03 1.1.1.3
+++ iconv/gconv_dl.c 2000/09/08 18:21:01
@@ -164,8 +164,6 @@ do_release_shlib (const void *nodep, VIS
}
else if (obj->counter <= 0)
{
- if (obj->counter >= -TRIES_BEFORE_UNLOAD)
- --obj->counter;
if (obj->counter < -TRIES_BEFORE_UNLOAD && obj->handle != NULL)
{
/* Unload the shared object. */
Index: sysdeps/ia64/Makefile
===================================================================
RCS file: /work/cvs/gnu/glibc/sysdeps/ia64/Makefile,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 Makefile
--- sysdeps/ia64/Makefile 2000/09/05 04:03:07 1.1.1.2
+++ sysdeps/ia64/Makefile 2000/09/08 16:13:44
@@ -5,4 +5,5 @@ endif
ifeq ($(subdir),elf)
sysdep-dl-routines += dl-symaddr dl-fptr
sysdep_routines += $(sysdep-dl-routines)
+sysdep-rtld-routines += $(sysdep-dl-routines)
endif
More information about the Libc-hacker
mailing list